从cellForItemAtIndexPath中重新加载UICollectionViewCell

时间:2013-08-14 19:47:28

标签: ios uicollectionview uicollectionviewcell sdwebimage uicollectionreusableview

在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;
}

1 个答案:

答案 0 :(得分:0)

github

上找到答案
  

您需要使用带有“options”参数的方法之一   像这样指定SDWebImageRetryFailed ......

     

[cell.imageView setImageWithURL:thumbnailURL placeholderImage:[UIImage   imageNamed:@“placeholder.png”]选项:SDWebImageRetryFailed   完成:^(UIImage *图像,NSError *错误,SDImageCacheType   cacheType){...}];