我有一个集合视图,其中包含每个部分中的单元格,每个单元格中都有一个图像。
可能,集合视图包含20个或更多单元格。
我想将图像从互联网加载到单元格中。问题是这可能需要几秒钟,即使图像没有完全下载,我也希望显示collectionView。
集合视图被赋予一个包含URL的数组,到目前为止,我一直在collection view cellforitematindexpath
但是,视图仅在加载所有单元格后才会显示,并且由于每次调用collection view cellforitematindexpath
都会下载图像,如果从URL中删除了20张图像,则需要很长时间。
如何显示视图,然后下载图像,然后显示它们?
希望我让自己理解,如果没有,请问!
谢谢!
C
答案 0 :(得分:1)
是的,您可以使用SDWebImage(如上面评论中所述)。
您可能面临的另一个有趣的方面,即如果图片尚未加载和用户滚动视图,则可能是dequeueReusableCellWithReuseIdentifier:forIndexPath
的问题,因此下载图片时更好id <SDWebImageOperation>
。
准备重用将是这样的:
- (void)prepareForReuse
{
[super prepareForReuse];
if (self.imageOperation)
[self.imageOperation cancel];
self.imageOperation = nil;
}
负载将是这样的:
SDWebImageManager *manager = [SDWebImageManager sharedManager];
self.imageOperation = [manager downloadWithURL:[NSURL URLWithString:urlString]
options:SDWebImageRetryFailed
progress:nil
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished) {
if (image)
{
self.imageView.image = image;
}
}];