在UICollectionView

时间:2015-07-27 06:26:53

标签: ios objective-c objective-c-blocks objective-c-category

使用 SDWebImage库我在运行时缓存图像。我想要的是预加载所有UICollectionViewCell的图像,就像我滚动到最后没有闪烁或占位符可见.Is可以预加载UICollectionViewCell中的所有图像。我尝试使用 SDWebImagePrefetcher 。需要帮助。

2 个答案:

答案 0 :(得分:0)

我建议你使用AFNetworking的UIImageView + AFNetworking类别。它将自动处理占位符等,并将在后台线程中执行所有操作,确保主线程不会被阻止。具体来说,这是您想要致电的方法:

- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholderImage;

答案 1 :(得分:0)

您必须预加载并维护UIImage缓存。如果用户从当前位置向后或向后滚动并在后台线程中在两个方向上执行一些合理的预加载,则需要预测将要显示的图像。然后,在collectionView:cellForItemAtIndexPath:中,您应首先检查图像是否已经在预加载的缓存中,如果它在那里,只需将它分配给您UIImageView。

还要确保使用dequeueReusableCellWithReuseIdentifier:forIndexPath:方法获取配置的单元格对象

如果确保UIImageView边界与UIImage尺寸完全匹配,那么性能最佳。您可以通过指定比例因子在UIImage创建时控制此项,前提是您已了解原始图像数据的元数据。