1

我已经在我的 uitableview 中插入了自定义 uitableviewcell SDWebImage 项目,我这样做是为了加载图像:

[cell.img_cell setImageWithURL:[self.url objectAtIndex:indexPath.row]
           placeholderImage:[UIImage imageNamed:nil]
                  completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {...}];

但是当我在一个单元格中滚动 uitableview 图像时,进入一个例如尚未加载图像的单元格,并对我滚动的所有单元格继续此效果,如果我快速向上滚动 tableview 单元格首先加载了正确的图像,然后像我上面所说的那样随机更改它,我该如何修复它?

4

1 回答 1

1

当您滚动时,您的表格单元格会被重复使用。这意味着当图像加载完成时,单元格可能不再“属于”原始 URL。

您应该做的是将图像设置为nilintableView:cellForRowAtIndexPath:以清除任何重复使用的图像,然后取消任何待处理的请求 in tableView:didEndDisplayingCell:,但这并不能有效地利用网络带宽。

更好的方法是将您的图像加载代码移动到表格控制器(使用SDWebImageManager),并在图像完成加载后等待查找正确的单元格。

于 2013-08-23T19:14:54.670 回答