美文网首页
SDWebImage

SDWebImage

作者: 一达 | 来源:发表于2019-04-13 14:52 被阅读0次

    作用

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

    组织架构

    image
    SDWebImageManager是单例使用的,分别维护了一个SDImageCache实例和一个SDWebImageDownloader实例。 SDWebImageManager会首先在memory以及disk的cache中查找是否下载过相同的照片,即调用imageCache的方法。
      如果在缓存中找到图片,直接调用completedBlock,第一个参数是缓存的image。
      如果没有在缓存中找到图片,或者不管是否找到图片,只要operation有SDWebImageRefreshCached标记,那么若SDWebImageManagerDelegate的shouldDownloadImageForURL方法返回true,即允许下载时,都使用 imageDownloader 下载,并将下载好的图片根据Url生成唯一key放到cache中
    
    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

          本文链接:https://www.haomeiwen.com/subject/awolwqtx.html