在cellForItemAtIndexPath中重试失败的映像下载的最佳方法是什么?我有一个集合视图,可以显示大约20个80x80缩略图。我使用SDWebImage在cellForItemAtIndexPath方法中下载和缓存图像,但我发现偶尔会有一个图像下载失败。我知道我可以使用一个完成块来测试图像是否为零,但它似乎没有正确地重新加载图像(图像仍然没有显示)。这就是我应该如何处理重新加载单元格的问题吗?下面是我的代码示例。
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
NSURL *thumbnailURL = [NSURL URLWithString:url];
INCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
[cell.imageView setImageWithURL:thumbnailURL completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
if (!image) {
[self.collectionView reloadItemsAtIndexPaths:[NSArray arrayWithObject:indexPath]];
}
}];
return cell;
}
在github 上得到答案
您需要使用其中一个带有"options"参数的方法,并且像这样指定SDWebImageRetryFailed…
[cell.image查看集合图像WithURL:tumbnailURL占位符图像:[UIImageimageNamed:@"placeholder.png"]选项:SDWebImageRetryFailed已完成:^(UIImage*图像,NSError*错误,SDImageCacheTypecacheType){…}];