在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;
}
答案 0 :(得分:0)
您需要使用带有“options”参数的方法之一 像这样指定SDWebImageRetryFailed ......
[cell.imageView setImageWithURL:thumbnailURL placeholderImage:[UIImage imageNamed:@“placeholder.png”]选项:SDWebImageRetryFailed 完成:^(UIImage *图像,NSError *错误,SDImageCacheType cacheType){...}];