ABELWebImageKit使用介绍
引言
ABELWebImageKit托管在github上:https://github.com/beyondabel/ABELWebImage
目录
1、ABELWebImageKit介绍
2、ABELWebImageKit库结构的简单分析
3、ABELWebImageKit库的图片管理
4、ABELWebImageKit库使用的简单举例
1、ABELWebImageKit介绍
这个库提供一个ABELImageView类以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。将ABELWebImageKit类库添加入工程时,一定注意需要添加ImageIO.framework。UIImage+Tools依赖这个framework。
2、ABELWebImageKit库结构的简单分析
ABELImageView:ABELImageView继承于UIImageView的,它主要用于加载来自网络的远程图片。其中avater用于区别是否为头像图片(默认非头像)。
ABELWebImageCacheManager:ABELWebImageCacheManager是一个单例,对图片进行管理的中转站,读取图片(向下层读取Cache或者读取网络),实现ABELWebImageCache和ABELWebImageRequest的回调。
ABELWebImageCache:根据URL的MD5摘要对图片进行存储和读取(实现存在内存中或者存在硬盘上两种实现) 实现图片和内存清理工作。 ABELWebImageRequest:根据URL向网络读取数据
3、ABELWebImageKit库的图片管理
ABELWebImageCache分两个部分,一个是内存层面的,一个是硬盘层面的。
内存层面的相当是个缓存器,以Key-Value的形式存储图片。当内存不够的时候会清除所有缓存图片。用搜索文件系统的方式做管理,文件替换方式是以时间为单位,剔除时间大于一周的图片文件。当ABELWebImageCacheManager向ABELWebImageCache要资源时,先搜索内存层面的数据,如果有直接返回,没有的话去访问磁盘,将图片从磁盘读取出来,然后做Decoder,将图片对象放到内存层面做备份,再返回调用层。
4、ABELWebImageKit库使用的简单举例
self.avatarImageView = [[ABELImageView alloc] init];
// 设置avatar为YES为显示圆形头像图片,否则为普通的图片
self.avatarImageView.avatar = YES;
self.avatarImageView.frame = CGRectMake(15, 10, 40, 40);
[self.avatarImageView setImageWithURL:[NSURL URLWithString:URLString]]
[self.contentView addSubview:self.avatarImageView];