3、SDWebImage里面给UIImageView加载图片的逻

2019-07-28  本文已影响0人  十二月_9d09

SDWebImage 中为UIImageView提供了一个分类UIImageView+WebCache.h,这个分类中有一个最常用的接口sd_setImageWithURL:placeholderImage:,会在真实图片出现前会先显示占位图片,当真实图片被加载出来后再替换占位图片。

加载图片的过程大致如下:

1、首先会在 SDWebImageCache 中寻找图片是否有对应的缓存, 它会以url 作为数据的索引先在内存中寻找是否有对应的缓存;

2、如果缓存未找到就会利用通过MD5处理过的key来继续在磁盘中查询对应的数据, 如果找到了, 就会把磁盘中的数据加载到内存中,并将图片显示出来;

3、如果在内存和磁盘缓存中都没有找到,就会向远程服务器发送请求,开始下载图片;

4、下载后的图片会加入缓存中,并写入磁盘中;

5、整个获取图片的过程都是在子线程中执行,获取到图片后回到主线程将图片显示出来。

SDWebImage原理:

调用类别的方法:

1、从内存(字典)中找图片(当这个图片在本次使用程序的过程中已经被加载过),找到直接使用;

2、从沙盒中找(当这个图片在之前使用程序的过程中被加载过),找到使用,缓存到内存中;

3、从网络上获取,使用,缓存到内存,缓存到沙盒。

上一篇 下一篇

猜你喜欢

热点阅读