ios - 预加载和缓存图像的最佳实践 (AFNetworking)

标签 ios objective-c caching uiimageview afnetworking

我想知道这个非常常见的操作的最佳实践是什么: 假设我有一个 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/

相关文章:

ios - glReadPixels 在 iOS 上崩溃

objective-c - 字符串中的日期不起作用

iphone - NSMutableDictionary 没有正确初始化

php - iOS 显然永久缓存网页

ios - 我的应用程序在App Store上不支持iPhone 4s和5吗?

ios - CoreData 如何将数据发送到另一个 View Controller

ios - 无法为UILabel设置下划线

javascript - 如何在 Remix.run 开发模式下使用内存缓存?

caching - 应该使用内存 Db 中的哪个来缓存主要用于读取的树?

ios - Sprite Kit iOS 7 - 如何向 SKSpriteNode 添加阴影?