延迟加载UICollectionView图像
问题描述:
UICollectionView的每个单元都有一个UIImageView,我需要加载它们,这样当你滚动浏览集合时,它们会正确显示,并且每个图像都会在其索引路径上加载一次。延迟加载UICollectionView图像
每张图片均从Kinvey下载。
代码下载每张图片:
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, cell.bounds.size.width, cell.bounds.size.width)];
[cell addSubview:imageView];
[KCSFileStore downloadData:@"id for item at index path"] completionBlock:^(NSArray *downloadedResources, NSError *error) {
if (error == nil) {
KCSFile* file = downloadedResources[0];
dispatch_async(dispatch_get_main_queue(), ^(void){
imageView.image = [UIImage imageWithData:file.data];
});
NSLog(@"Downloaded.");
} else {
NSLog(@"Error: %@", error.localizedDescription);
}
} progressBlock:nil];
那“dispatch_async(dispatch_get_main_queue()^(无效)......”是我试图解决我的问题下载图像异步,但是这并没有如果你想使用第三方库中的CollectionView图像进行延迟加载提前工作。
感谢。
你想要做什么?在倒影下载图像,而滚动它应该出现,不是吗? – Santo
这是在cellForRow上完成的......如果是这样,你将继续添加imageView,这将使视图渲染速度越来越慢,视图不断堆积 – Joshua