SDWebImage 常用方法
SDWebImage是iOS中一款处理图片的框架, 使用它提供的方法, 一句话就能让UIImageView
自动去加载并显示网络图片。特别是在UITableViewCell
中有UIImageView
需要显示来自网络的图片。SDWebImage会自动去管理这些图片, 包括缓存到内存和缓存到磁盘等等。包括gif图片的显示也是轻松完成。本文主要分享除了基本方法以外的一些其他给力方法。
图片下载
图片下载有两种方式。
1 |
|
以上两个方法可以下载图片,但是肯定是有差别的。相同点就不详细说了,都提供下载进度回调和下载完成回调,主要说说不同点。
- 方法1和方法2是两个不同的类,方法1(
SDWebImageDownloader
)只下载图片,不管理图片,不会缓存图片到内存和本地。方法2(SDWebImageManager
) 既下载图片,又管理图片。其实方法2内部也是调用的方法1。只不过方法2会缓存图片,并且管理下载队列。 - 下载完成之后的回调传递的参数不一样,方法1会将图片的NSData数据和传过来,而方法2只传递了image对象。
- 方法1的
completed
回调不是在主线程,如果需要在主线程做事情,得手动回到主线程。方法2的completed
回调是主线程,在做进一步处理时就不用再手动回到主线程了。
图片存储(SDImageCache类)
可以将手动将图片通过SDWebImage存储,由SDWebImage统一管理。
1 |
|
以上是两个比较有代表性的方法
- 方法1只能存储png或者jpg图片,不能存储gif图片,方法内部会对image对象进行转换,然后写到本地。
- 方法2就比较给力了,因为提供了
imageData
参数,可以将图片的NSData对象传过去,什么类型的图片都可以存储。这里需要注意的是,如果提供了imageData
, 那么recalculate
传递NO
就可以了, 方法内部就不会再拿UIImage对象去转换成NSData对象了了。
获取缓存图片的路径
有时候可能需要拿到缓存图片的路径做做一些事情,SDWebImage也提供了相应的方法。
1 |
|
获取缓存图片
1 |
|
调用这个方法时,SDImageCache
会先到内存中查找图片,如果没找到,再到磁盘上找。
获取缓存占用空间
1 |
|
这个方法会直接返回通过SDWebImage缓存的图片,在磁盘上占用的空间。
其他给力方法
1 |
|
Done!
SDWebImage 常用方法的更多相关文章
- iOS-多线程--(pthread/NSThread/GCD/NSOperation)--总结
零.线程的注意点(掌握) .不要同时开太多的线程(~3条线程即可,不要超过5条) .线程概念 > 主线程 : UI线程,显示.刷新UI界面,处理UI控件的事件 > 子线程 : 后台线程,异 ...
- (20160602)开源第三方学习之SDWebImage
这个类库提供一个UIImageView类别以支持加载来自网络的远程图片.具有缓存管理.异步下载.同一个URL下载次数控制和优化等特征. 地址:https://github.com/rs/SDWebIm ...
- 第三方框架、AFN、ASI、SDWebImage
AFN 一.2大管理对象1.AFHTTPRequestOperationManager* 对NSURLConnection的封装 2.AFHTTPSessionManager* 对NSURLSessi ...
- iOS 第三方框架-SDWebImage
iOS中著名的牛逼的网络图片处理框架.包含的功能:图片下载.图片缓存.下载进度监听.gif处理等等.用法极其简单,功能十分强大,大大提高了网络图片的处理效率.国内超过90%的iOS项目都有它的影子. ...
- ios开发总结:Utils常用方法等收集,添加扩展类,工具类方法,拥有很多方便快捷功能(不断更新中。。。)
BOBUtils 工具大全 本人github开源和收集功能地址:https://github.com/niexiaobo [对ios新手或者工作一年以内开发人员很有用处] 常用方法等收集.添加扩展类. ...
- AJ学IOS(55)多线程网络之图片下载框架之SDWebImage
AJ分享,必须精品 效果: 代码: - (NSArray *)apps { if (!_apps) { NSArray *dictArray = [NSArray arrayWithContentsO ...
- SDWebImage源码解读之SDWebImageDownloaderOperation
第七篇 前言 本篇文章主要讲解下载操作的相关知识,SDWebImageDownloaderOperation的主要任务是把一张图片从服务器下载到内存中.下载数据并不难,如何对下载这一系列的任务进行设计 ...
- SDWebImage源码解读 之 NSData+ImageContentType
第一篇 前言 从今天开始,我将开启一段源码解读的旅途了.在这里先暂时不透露具体解读的源码到底是哪些?因为也可能随着解读的进行会更改计划.但能够肯定的是,这一系列之中肯定会有Swift版本的代码. 说说 ...
- SDWebImage源码解读 之 UIImage+GIF
第二篇 前言 本篇是和GIF相关的一个UIImage的分类.主要提供了三个方法: + (UIImage *)sd_animatedGIFNamed:(NSString *)name ----- 根据名 ...
随机推荐
- QR Code於台灣各行業的行銷應用案例介紹
當走在東京的大街小巷時,在五花八門的廣告看板.雜誌.護照簽證.海關.宣傳品.廣告.旅遊和導覽手冊.產品包裝.甚至在餐廳菜單上,皆可看到上面有一組黑色神秘二維條碼圖案:QR Code,當看到有興趣的商品 ...
- 7篇Model View和4篇双缓冲
http://www.cnblogs.com/SkylineSoft/category/299475.html
- c++ 静态多态与动态多态
多态polymorphism是指具有多种形态的情况,它能根据单一的标记关联不同的行为.多态是面向对象程序设计的基础.在面向对象程序设计中的多态是一种运行时的多态.C++中有两种多态,称为动多态(运行时 ...
- CodeForces 154B- Colliders
预处理...由于10^5<2^20..所以每个数的质因子个数最多20个..为了避免重复运算..将素有数的质因子打表出来... 两个数如果互质..那么他们的最大公约数为1..反过来说..两个数如果 ...
- 实习生的Django[1]
尽管学期尚未结束,暑假尚未到来,可是大三的同学非常多已经和我一样開始实习或者实习一段时间了.我仅仅面试了一间数据挖掘的公司的研发部,还算顺利通过. 来这里实习后,由于网络原因,昨天没有刷题也没有写BL ...
- o怎么样racle输入dmp数据库文件
Oracle进出口数据imp/exp等价物oracle数据恢复和备份. exp命令可以从远程数据库传输数据server出到本地的dmp文件,imp命令能够把dmp文件从本地导入到远处的数据库serve ...
- UVa 12299 RMQ with Shifts(线段树)
线段树,没了.. ----------------------------------------------------------------------------------------- # ...
- 关于php支持的协议与封装协议
<?php /* * php://stdin 标准输入流 * php://stdout 标准输入流 * php://stderr 标准错误流 * php://output 只写的数据流 * ph ...
- ubuntu vim终端编辑命令
一. VIM高亮 进入vim后,在普通模式下输入如下命令,开启php代码高亮显示 :syntax enable :source $VIMRUNTIME/syntax/php.vim 二. ...
- 读书笔记: 深入浅出node.js
>> 深入浅出node.js node.js是c++编写的js运行环境 浏览器: 渲染引擎 + js引擎 后端的js运行环境 node.js用google v8引擎,同时提供很多系统级的A ...