iphone如何访问cellForRowAtIndexPath之外的自定义单元格

时间:2010-09-13 18:49:59

标签: iphone

我已经设置了自定义单元格的tableview。 customCell是一个类。 下面是代码,以获得更准确的视图:

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

 NSManagedObject *object = (NSManagedObject *)[entityArray objectAtIndex:indexPath.row];

 NSString *cellIdentifier = [NSString stringWithFormat:@"asd%d", indexPath.row];

 customCell *cell = [[tableView dequeueReusableCellWithIdentifier:cellIdentifier] autorelease];
 //i tried setting a tag but dunno how to call it afterwards
     [cell setTag:indexPath.row];

 if (cell == nil) {
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"customCell" owner:self options:nil];
  cell = [topLevelObjects objectAtIndex:0];
    }

 if (cell.imagen != nil) {
  [[cell imageView] setImage:[cell imagen]];
 } else { /* setup image... */ }
    }


    -(void) webImageReady:(WebImage *)downloadedImage imageView:(UIImageView *)imageView cellTag:(NSInteger *)cTag
    { 
     // This is the part where i want to access cell.imagen, this is actually wrong...
     [[[imageView.superview viewWithTag:cTag] imagen] setImagen:downloadedImage.Image];
     [imageView setImage:downloadedImage.Image];

    }

确定。现在我想从cellForRowAtIndexPath之外的方法访问(引用)cell.imagen属性,更确切地说是在下载完成的选择器(委托) 提前致谢!

2 个答案:

答案 0 :(得分:1)

如果下载图片,请在cellForRowAtIndexPath内进行,并在成功下载图片后[tableview setNeedsDisplay]

答案 1 :(得分:0)

你不应该引用单元格创建方法之外的单元格,你应该考虑单元格被渲染的情况,但是当获取图像被滚出去除了被释放或甚至重用于另一个单元格时,解决它的一种方法是有图像视图数组或类似的东西。

我认为您应该尝试使用已经在其中执行此操作的第三方库(称为Three20)。它有一个对象调用TTImageView,它获取一个URL并在后台加载它,它解决了所有的情况以及优化的缓存