从cellForItemAtIndexPath中重新加载UICollectionViewCell



在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){…}];

相关内容

  • 没有找到相关文章

最新更新