哪个图像caching库为iOS?
我正在构build一个相册应用程序,并find一些图像caching库,即:
- JMImageCache
- HJCache
- SDWebImage
你会推荐什么(或其他库不在名单上)? 我在寻找:
- 效率
- 垃圾收集方面的最小努力
- 支持块首选
谢谢
就个人而言,我认为SDWebImage是最好的,因为它是一个绝对的努力解决scheme,并提供了最简单的caching处理机制,因为它只是UIImageView类的扩展。
图像asynchronous下载和caching不是一个简单的任务。 它需要做得好,否则就会打败它的目的。 所以我强烈build议你最终build立自己的。 话虽如此,我需要一个快速而简单的解决scheme,以推进我的应用程序的发展。
我发现这些解决scheme:
- HJCache
- SDWebImage
- 苹果的LazyTableImages
- 从苹果的LazyTableImages, MHLazyTableImages适应
我试过HJCache,但是在处理大图片(1.5M +)时,它并没有提供很好的滚动性能。 对于小图像,虽然它工作得很好。 尝试了两个LazyTableImages,但整合并不简单。
最终,我select了SDWebImage。 整合不能简单一些。 一旦你将库链接到你的项目,你需要做的是:
[cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
在你的tableView:cellForRowAtIndexPath:
。
另外:
- 与自定义单元格一起工作
- 不阻止用户界面
- 提供很好的滚动性能
- 图像下载和caching是无缝的。
试试APSmartStorage 。 它会自动将UIImage / NSDatacaching在磁盘或内存中。
它有可爱的块式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 } }];
这很聪明,而且还很简单:
有多个框架可以解决这个问题。 仅举几个:
迅速:
- Nuke (我的)
- 翠鸟
- AlamofireImage
- HanekeSwift
Objective-C的:
- AFNetworking
- PINRemoteImage
- YYWebImage
- SDWebImage
我试过使用SDWebImage。
同意这很容易整合。
然而,这个库的大问题是,它不尊重“最大年龄”caching控制。
图书馆仍在开发中,但他们没有select这个限制。
我强烈build议你尝试翠鸟和SDWebImage 。 这两个完美的作品,从网上下载和caching图像。