我正在构建相册应用程序并找到一些图像缓存库,即:
你推荐的是什么(或者不在列表中的其他库)?我在寻找:
由于
答案 0 :(得分:16)
就个人而言,我认为SDWebImage是最好的,因为它是一个绝对不费力的解决方案,并提供了最简单的缓存处理机制,因为它只是UIImageView类的扩展。
答案 1 :(得分:11)
图像异步下载和缓存不是一项简单的任务。它需要做得好,否则会破坏它的目的。因此,我强烈建议您最终建立自己的。话虽如此,我需要一个快速而简单的解决方案,以便继续开发我的应用程序。
我找到了这些解决方案:
我尝试过HJCache,但在处理大图像(1.5M +)时它没有提供出色的滚动性能。对于小图像,它工作得很好。同时尝试了LazyTableImages,但整合并不简单。
最终,我选择了SDWebImage。整合不可能更简单。将库链接到项目后,您需要做的就是:
[cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
在tableView:cellForRowAtIndexPath:
中。
此外:
答案 2 :(得分:3)
有多个框架可以解决这个问题。仅举几例:
夫特:
目标-C:
答案 3 :(得分:2)
另请尝试APSmartStorage。它会自动将UIImage / NSData缓存在磁盘或内存中。
它有可爱的块式API;
// setup data parsing block
APSmartStorage.sharedInstance.parsingBlock = ^(NSData *data, NSURL *url)
{
return [UIImage imageWithData:data scale:UIScreen.mainScreen.scale];
};
...
// show some progress/activity
...
// load object with URL
[APSmartStorage.sharedInstance loadObjectWithURL:imageURL callback:(id object, NSError *error)
{
// hide progress/activity
if (error)
{
// show error
}
else
{
// do something with object
}
}];
这很聪明而且很简单:
答案 4 :(得分:0)
我尝试使用SDWebImage。
同意它很容易整合。
然而,这个库的一个大问题是它不支持“max-age”缓存控制。
图书馆仍在开发中,但他们没有选择这个限制。
答案 5 :(得分:0)
我强烈建议您尝试Kingfisher和SDWebImage。两者都适用于从网上下载和缓存图像。
答案 6 :(得分:0)
Moa 是使用Swift编写的图像下载库。通过设置其moa.url属性,可以下载并在图像视图中显示图像。
安装 使用CocoaPods将Moa添加到您的项目中。只需将以下行添加到您的Podfile中即可。
pod'moa','〜> 8.0'