我想知道这个非常常见的操作的最佳实践是什么: 假设我有一个 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")];
}
}
谢谢,
最佳答案
有一种在 Apple 中实现的 Collection View 中预热图像的通用方法 PhotosKit samples .您可以预测用户操作并获取可能很快出现在显示器上(靠近视口(viewport))的图像。此功能在 Nuke 中实现和 DFImageManager .
关于ios - 预加载和缓存图像的最佳实践 (AFNetworking),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27077844/