美文网首页
3、SDWebImage里面给UIImageView加载图片的逻

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

作者: 十二月_9d09 | 来源:发表于2019-07-28 07:35 被阅读0次

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

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

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

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

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

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

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

    SDWebImage原理:

    调用类别的方法:

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

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

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

    相关文章

      网友评论

          本文标题:3、SDWebImage里面给UIImageView加载图片的逻

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