美文网首页
SDWebImage 用oc写的第三方库

SDWebImage 用oc写的第三方库

作者: xing_zhu | 来源:发表于2016-07-26 23:54 被阅读65次

    SDWebImage是常用的一个加载网络图片的第三方库,分别给UIImageVIew和UIbutton添加了类别,直接可以调用

    封装思路:

    1、使用异步网络请求加载图片。

    2、实现了图片的缓存

    缓存分为内存和沙盒两种途径,内存中的缓存图片以key-value的形式存在,如果图片缓存过多的话会自动清理缓存,沙盒目录下的图片保存在Library下的Cache文件夹下,是由用户手动清理缓存的

    3、实现了图片的缓存之后,再次启动程序,他会首先检测内存中有没有缓存,如果有直接加载缓存中的图片,如果内存中没有去检测沙盒中有没有缓存,如果有直接加载沙盒中的图片,如果没有直接进行网络请求。

    imageView1.sd_setImageWithURL(NSURL(string: "http://static.damai.cn//6d2f40c2-b15e-4646-b84d-27acac971426.jpg"), placeholderImage: UIImage(named: "8.jpg"))

    4、调用UIButton的类别,加载网络图片,并且如果不带缓存,options表示的是额外需要处理的功能,CacheMemoryOnly表示只在内存中缓存一份,沙盒中不缓存

    button.sd_setImageWithURL(NSURL(string: "http://static.damai.cn//e947b853-41d5-4504-a046-8195ab516d7f.jpg"), forState: UIControlState.Normal, placeholderImage: UIImage(named: "8.jpg"), options: SDWebImageOptions.CacheMemoryOnly) 

    5.关键字static的作用是什么?

    (1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;

    (2)在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;

    (3)在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内;

    相关文章

      网友评论

          本文标题:SDWebImage 用oc写的第三方库

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