跳过正文

从文件结构看sdwebimage

·1 分钟
目录

前言
#

  • 一个异步下载图片并且支持缓存的 UIImageView 分类
  • sdwebimage 使用分类协议扩展通知实现了图片下载(异步),缓存(自动),解码( WebP 格式)

code 文件结构
#

图片
  • manager(管理下载和缓存,供给上层 webCache Categories 使用)
  • downloader(下载模块)
  • cache(缓存模块包括 SDImageCache 与 SDDiskCache)
  • Decoder(解码模块)
  • utils(错误,平台,下载指示器,声明,宏定义,通用协议,)
  • categories(数据分类如 NSdata 工具分类)
  • webCache Categories(UIkit 相关的分类)

模块之 webCache Categories
#

  • UIkit 中的 uiview 作为 UIImageView 和 UIBtton 父类为其他子类提供便利方法来实现共用。uiview 的便利方法使用分类实现。
//所有 View Category 的 setImageUrl;
- (void)sd_internalSetImageWithURL:(nullable NSURL *)url
                  placeholderImage:(nullable UIImage *)placeholder
                           options:(SDWebImageOptions)options
                           context:(nullable SDWebImageContext *)context
                     setImageBlock:(nullable SDSetImageBlock)setImageBlock
                          progress:(nullable SDImageLoaderProgressBlock)progressBlock
                         completed:(nullable SDInternalCompletionBlock)completedBlock;

主要模块
#

  • SDWebImageCompat 做机型适配的。
  • SDWebImageDownloader 异步下载器专用和优化图像加载。
  • SDWebImagePrefetcher 图片的预加载。

待续
#