下载图片后重新加载 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 *)indexPaths
like 重新加载
[collectionView reloadItemsAtIndexPaths:YourIndexPath];
【讨论】:
【参考方案3】:您必须升级 SDWebImage,您的版本不适用于 ios8。 下载最后一个 SDWebImage 库,改用 sd_setImageWithURL 方法。
【讨论】:
以上是关于下载图片后重新加载 CollectionView 的单元格的主要内容,如果未能解决你的问题,请参考以下文章
在 UICollectionView 中重新加载数据后保持 collectionview 速度