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];





Comments