关于SDWebImage框架的分析

  • 什么是SDWebImage
    • iOS中著名的牛逼的网络图片处理框架
    • 包含的功能:图片下载、图片缓存、下载进度监听、gif处理等等
    • 用法极其简单,功能十分强大,大大提高了网络图片的处理效率
    • 国内超过90%的iOS项目都有它的影子

  

 1.做准备工作 数据 kvc

 2.搭建界面 tableView ,同步方式下载图片

 3.异步下载

 问题:图片出不来,控件frame=0,但是点击或者滚动图片才会处理

 原因:当tableview代理方法返回cell的时候,没有图片,不会创建UIImageView,但是当图片下载完成的时候,再去点击,执行layoutSubviews,根据图片的大小重新布局子控件,生成UIImageView

 占位图片:使得一开始就把UIImageView创建出来,等图片下载完成就替换内容

 4.自定义cell

 问题:

 4.1.来回滚动界面,图片"乱跳"

 原因:cell出现到界面的时候,需要调用cellForRowAtIndexPath->开启下载图片的异步操作,cell滚出界面,cell回到缓存池,屏幕从底部滚出去的cell就可能是之前滚出去的cell,cell保存了之前的图片样式,并且又重新开启了图片异步下载的操作,当下载完成的时候,图片会赋值给最后一个cell

 4.2.已经下载过的图片需要缓存

 解决:把下载完成的图片放到model中

5.内存缓存

 问题:网络很慢的情况下,来回滚动.,一个图片开启了多个下载的操作,造成流量的浪费

 原因:内存缓存永远没有图片,不能拦截重新开启下载

6.操作缓存:保存下载的操作->保证一个图片只开启一个下载

7.内存不够-报警告-不处理-闪退

8.沙盒缓存

9.内存不释放问题:

 现象:过了一段时间之后,图片下载完成,才释放

posted on 2016-06-12 20:38  luffy的笑容  阅读(200)  评论(0)    收藏  举报