SDWebImageManager 解析

在实际的运用中,我们并不直接使用SDWebImageDownloader类及SDImageCache类来执行图片的下载及缓存。为了方便用户的使用,SDWebImage提供了SDWebImageManager对象来管理图片的下载与缓存。

该对象将一个下载器和一个图片缓存绑定在一起,并对外提供两个只读属性来获取它们,@property (strong, nonatomic, readonly) SDImageCache *imageCache;@property (strong, nonatomic, readonly) SDWebImageDownloader *imageDownloader;

它还有一个delegate属性,其是一个id<SDWebImageManagerDelegate>对象。SDWebImageManagerDelegate声明了两个可选实现的方法如下:

- (BOOL)imageManager:(SDWebImageManager *)imageManager shouldDownloadImageForURL:(NSURL *)imageURL;// 控制当图片在缓存中没有找到时,应该下载哪个图片

- (UIImage *)imageManager:(SDWebImageManager *)imageManager transformDownloadedImage:(UIImage *)image withURL:(NSURL *)imageURL;// 允许在图片已经被下载完成且被缓存到磁盘或内存前立即转换

这两个代理方法会在SDWebImageManager的-downloadImageWithURL:options:progress:completed:方法中调用,而这个方法是SDWebImageManager类的核心所在

posted @ 2019-05-27 11:30  小妮子的奋斗时代  阅读(136)  评论(0编辑  收藏  举报