我在我的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快速加载正确图像的单元格,然后如上所述随机更改它,我该怎样修复它?
答案 0 :(得分:1)
滚动时正在重复使用表格单元格。这意味着当图像加载完成时,单元格可能不再“属于”原始URL。
您应该做的是将图片设置为nil
中的tableView:cellForRowAtIndexPath:
以清除所有重复使用的图片,然后取消tableView:didEndDisplayingCell:
中的所有待处理请求,但这并不能提高效率使用网络带宽。
更好的方法是将图像加载代码移动到表控制器中(使用SDWebImageManager
)并等待图像加载完成后查找正确的单元格。