0

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

1 回答 1

0

Got an answer on github

You need to use one of the methods with an "options" parameter and specify SDWebImageRetryFailed like so...

[cell.imageView setImageWithURL:thumbnailURL placeholderImage:[UIImage imageNamed:@"placeholder.png"] options:SDWebImageRetryFailed completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {...}];

于 2013-08-21T17:26:44.080 回答