我创建了一个应用程序,用户可以在其中上传图像,并且还可以查看其他用户上传的所有图像。我已经集成了分页代码并一次下载 10 张图像并将它们显示在 UITableView 上。我使用 AFNetworking 来完成此任务,即将图像保存在缓存中。问题是,当用户不断下载图像并且计数达到大约 300 张图像时,应用程序会因为设备内存不足而崩溃。我正在寻找这个问题的最佳解决方案。我的想法是一次在缓存中保留 50 张图像,当用户下载较新的图像时,旧的图像将从缓存中删除。另请告诉我是否可以使用 AFNetworking 来完成此操作。
最佳答案
您应该使用 SDWebImage 而不是下载它将缓存的图像,并且您也可以自定义该缓存选项。
我使用这个 SDWebImage 在 UICollectionview 中缓存 150 多个图像,在 UITableview 中缓存相同的图像,其工作完美。
一开始我们需要添加一个占位符,然后它就会一一出现。
实现
1.取出SDWebImage代码 SDWebImage
2.将头文件导入到您的 View Controller 中
#import <SDWebImage/UIImageView+WebCache.h>
3.然后在cellforrowindex()方法中添加一行代码。我会给你示例代码快照
// Here we use the new provided setImageWithURL: method to load the web image
[cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
关于uitableview - 当需要下载大量图像时如何处理内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19903324/