当我们点击Tableview的每一行时,如何在同一视图中加载不同的图像

时间:2012-08-01 12:45:48

标签: iphone objective-c ios

我的问题:

我使用的是两个视图,第一个是TableView,另一个是pagecurlViewController。我需要的是在tableview中有20行,当我点击每一行时,我需要在pagecurlViewController中加载图像。我在阵列中有50个图像,我遇到了麻烦。当我点击第1行时,它有所有50个图像,当我点击Row2,Row3,Row4 ...... Row20时,它也只显示50个图像。但我需要的是在一个特定的行中选择3个图像。有没有代码可以做到这一点?

3 个答案:

答案 0 :(得分:0)

我假设你的表中只有一个部分有20行,所有图像都在your_ImageArray中。然后你可以尝试像波纹管一样的东西。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

int i = indexPath.row * 3;

 if(i < your_ImageArray.count - 3){
  for(int j = 0; j < 3; j++){

   NSLog(@"your image  = %@",[your_ImageArray objectAtIndex:i]);
   i++;

  }
}

}

但是上面的代码可以根据你的需要为你的行和数组计数不匹配提供数组超出范围的例外

答案 1 :(得分:0)

您应该使用-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath方法实现代码,并在imageFunction:

中定义YourViewController.m方法
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

   [self.navigationController pushViewController:yourView animated:YES];
    if(!yourView)
    {
       yourView = [[YourViewController alloc] initWithNibName:@"YourViewController" bundle:nil];
    }
    [yourView imageFunction:[yourArray objectAtIndex:indexPath.row]];
    [self.navigationController pushViewController:yourView animated:YES];

}

我认为这会对你有所帮助。

答案 2 :(得分:0)

我想你只想按表视图选择图像。

这是选择表视图。

selection

这是详细视图。

detail

起初,我创建了属性arrayImg

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self) {
        self.arrayImg = [NSArray arrayWithObjects:
                         [UIImage imageNamed:@"image0.jpg"],
                         [UIImage imageNamed:@"image1.jpg"],
                         [UIImage imageNamed:@"image2.jpg"], nil];
    }
    return self;
}

然后,我写了单元格选择代码。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *s = [NSString stringWithFormat:@"image%d.jpg", indexPath.row];
    [self performSegueWithIdentifier:@"showImage" sender:s];
}

最后,我制作了prepareForSegue方法。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    DetailViewController *d = segue.destinationViewController;
    d.strImgName = sender;
}

在详细视图中,我刚才写道:

- (void)viewWillAppear:(BOOL)animated
{
    self.imageView.image = [UIImage imageNamed:strImgName];
}

整个项目在这里:https://github.com/weed/p120801_ImageSelectorWithTableView

您可以下载示例项目并运行它。

我希望我的试用对你有帮助。