这是一个简单的图片缓存,同时使用了LongRequest(文件下载),LongDispatch(多任务),实现了一个较为完整的缓存机制,默认支持gif图片的播放
1.使用 Cocoapods 来集成LongImageCache, 集成方法如下:
pod 'LongImageCache'
//首先引入header
#import "UIImageView+LongCache.h"
//缓存图片
NSString *url = @"http://127.0.0.1/test.jpg";
[imageView setImageWithUrl:url placeholderImage:nil toDisk:YES];
#import "LongPhotoBrowser.h"
//进图图片浏览
[[LongPhotoBrowser sharedInstance] showWithUrls:@[@"http://127.0.0.1/test.jpg"] withIndex:0];
//首先引入header
#import "UIImageView+LongCache.h"
UIImageView *imageView = [[UIImageView alloc] init];
//设置图片文件数组
[imageView setImagesWithNames:@[@"xxx1.png",@"xxx2.png",@"xxx3.png"]];
//这是播放间隔,这里用displaylink实现,所以不能小于1/60
imageView.animationDuration = 1/24;
//播放图片
[imageView startAnimating];
进入ImageCacheDemo路径下执行,点击ImageCacheDemo.xcworkspace即可运行
pod install
相同两张gif图片,使用iphone8模拟器,虽然使用了一定的cpu,但是对内存消耗差距十分明显(选取的gif图片帧数较多,分别是209和135)
使用SDImageCache播放GIF图片时的内存和CPU消耗:
播放效果:
使用LongImageCache播放GIF图片时的内存和CPU消耗:
播放效果:
使用的gif素材:
- 优化缓存set和get性能以及写入本地的性能(根据key的hash值,写入文件时分配不同的异步线程队列,提高执行效率)
- 添加imageview可以设置多张图片并播放(非gif情况)
- UIImageView+LongCache添加可以设置本地gif图片
- 针对UIImageView+LongCache进行优化
- LongPhotoBrowser图片浏览添加简单功能
- 修复图片下载阻塞的bug
- 提高gif图片播放性能,降低内存和cpu的消耗
- 对imagecache进行性能优化
- 修复设置空url导致的crash问题
- 添加图片浏览功能的LongPhotoBrowser,可以简单浏览图片
- 轻量级的ImageCache,可以支持网络图片加载,gif播放等功能