我想知道这个非常常见的操作的最佳做法是什么:
假设我有一个 Collection View ,并且这个 Collection View 的每个单元格都有一个 imageView,它接收一个图像的 url。
图像很大,所以我想提前预加载所有图像(或者说提前 5 个)。
我正在使用 AFNetworking imageView 类别。
这就是我所做的 - 创建一个临时 UIImageView 并在每次迭代时为其设置 url,但它似乎无法正常工作。 (图像仍然需要时间才能显示,而我希望它是即时的,如果我关闭互联网连接,图像不会从缓存中加载)。
- (void)preloadGalleryImages {
for (GalleryItem *item in _galleryItems) {
UIImageView *tempImageView = [[UIImageView alloc] init];
[tempImageView setImageWithURL:item.imageURL placeholderImage:IMAGE(@"placegolder")];
}
}
}
谢谢,
Best Answer-推荐答案 strong>
有一种在 Collection View 中预热图像的通用方法,该方法已在 Apple PhotosKit samples 之一中实现。 .您可以预测用户操作并获取可能很快出现在显示器上的图像(靠近视口(viewport))。此功能在 Nuke 中实现和 DFImageManager .
关于ios - 预加载和缓存图像的最佳实践 (AFNetworking),我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/27077844/
|