下载图片后重新加载 CollectionView 的单元格

Posted

技术标签:

【中文标题】下载图片后重新加载 CollectionView 的单元格【英文标题】:Reload cell of CollectionView after image is downloaded 【发布时间】:2014-10-19 21:48:05 【问题描述】:

我正在使用库 SDWebImage 来下载图像。

我将下载的图像设置到 cellForItemAtIndexPath 内的 UICollectionViewCell,但图像在滚动 CollectionView 后可见。我认为我必须重新加载该特定单元格,但不知道如何。

这是 UICollectionViewCell 的代码

[imgView setImageWithURL:[NSURL URLWithString:imgUrl]
                               placeholderImage:[UIImage imageNamed:@"YourPlaceholder.png"]
                                      completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) 
                                          //... completion code here ...
                                          cell.image = imgView.image;
                                          //Reload The cell to see the image downloaded ¿HOW?
                                      ];

MJCollectionViewCell.m 的代码

- (void)setImage:(UIImage *)image

    // Store image
    self.MJImageView.image = image;

    // Update padding
    [self setImageOffset:self.imageOffset];

知道怎么解决吗?

【问题讨论】:

- (void)reloadItemsAtIndexPaths:(NSArray *)indexPaths 【参考方案1】:

我遇到了同样的问题。

解决方法:[cell setNeedsLayout];

【讨论】:

【参考方案2】:

你试过做这样的事情吗?

dispatch_async(dispatch_get_main_queue(), ^
    cell.image = imgView.image;
);

或使用- (void)reloadItemsAtIndexPaths:(NSArray *)indexPathslike 重新加载

[collectionView reloadItemsAtIndexPaths:YourIndexPath];

【讨论】:

【参考方案3】:

您必须升级 SDWebImage,您的版本不适用于 ios8。 下载最后一个 SDWebImage 库,改用 sd_setImageWithURL 方法。

【讨论】:

以上是关于下载图片后重新加载 CollectionView 的单元格的主要内容,如果未能解决你的问题,请参考以下文章

删除后重新加载collectionView

重新加载collectionview后关闭视图

在 UICollectionView 中重新加载数据后保持 collectionview 速度

如何在collectionView中重新加载补充视图

Swift数组追加不适用于collectionView重新加载数据

为collectionview重新加载数据