SDWebImage

作用

1、为Button、ImageView添加分类方法加载图片
2、支持WebP和GIF格式动画
3、使用异步线程加载图片,自动管理缓存(根据URL生成唯一的key来检索缓存)

组织架构

SDWebImage_第1张图片
image
SDWebImageManager是单例使用的,分别维护了一个SDImageCache实例和一个SDWebImageDownloader实例。 SDWebImageManager会首先在memory以及disk的cache中查找是否下载过相同的照片,即调用imageCache的方法。
  如果在缓存中找到图片,直接调用completedBlock,第一个参数是缓存的image。
  如果没有在缓存中找到图片,或者不管是否找到图片,只要operation有SDWebImageRefreshCached标记,那么若SDWebImageManagerDelegate的shouldDownloadImageForURL方法返回true,即允许下载时,都使用 imageDownloader 下载,并将下载好的图片根据Url生成唯一key放到cache中
SDWebImage_第2张图片
image
SDWebImageDownloader负责维持图片的下载队列;
SDWebImageDownloaderOperation负责真正的图片下载请求;
SDImageCache负责图片的缓存;
SDWebImageManager是总的管理类,维护了一个SDWebImageDownloader实例和一个SDImageCache实例,是下载与缓存的桥梁;
SDWebImageDecoder负责图片的解压缩;
SDWebImagePrefetcher负责图片的预取;
UIImageView+WebCache和其他的扩展都是与用户直接打交道的。

文件类分析

1、SDImageCache
 设置缓存的类型,方式,路径等

 2、SDWebImageCompat
 兼容类,定义了很多宏和一个转换图片的方法

 3、SDWebImageDecoder
 解码器,让图片色彩转换(涉及到color space)

 4、SDWebImageDownloader
 下载器,设置下载相关,要用到SDWebImageDownloaderOperation

 5、SDWebImageDownloaderOperation
 下载器的操作

 6、SDWebImageManager
 管理图片下载,取消操作,判断url是否已缓存等

 7、SDWebImageOperation
 图片操作,后面很多类都要用到

 8、SDWebImagePrefetcher
 预抓取器,预先下载urls中的图片

 9、UIButton+WebCache
 按钮图片的缓存

 10、UIImage+GIF
 缓存gif

 11、NSData+ImageContentType
 判断图片的类型,png/jpeg/gif/webp

 12、UIImage+MultiFormat
 缓存多种格式的图片,要用到NSData+ImageContentType的判断图片类型方法和UIImage+GIF的判断是否为gif图片方法,以及ImageIO里面的方法

 13、UIImageView+HighlightedWebCache
 缓存高亮图片

 14、UIImageView+WebCache
 主要用到这个,加载及缓存UIImageView的图片

 15、UIView+WebCacheOperation
 缓存的操作,有缓存,取消操作,移除缓存
 SDWebImageDownloader

你可能感兴趣的:(SDWebImage)