SDWebImage第三方库学习
1、基本使用方法
//异步下载并缓存
- (void)sd_setImageWithURL:(nullable NSURL *)url NS_REFINED_FOR_SWIFT;
//使用占位图片,当下载完成后使用新下载的图片进行替换
- (void)sd_setImageWithURL:(nullable NSURL *)url
placeholderImage:(nullable UIImage *)placeholder NS_REFINED_FOR_SWIFT;
//参数options表示下载图片时使用的选项常量,下面还会一一列举
- (void)sd_setImageWithURL:(nullable NSURL *)url
placeholderImage:(nullable UIImage *)placeholder
options:(SDWebImageOptions)options NS_REFINED_FOR_SWIFT;
//操作完成后调用的块。其中typedef void(^SDExternalCompletionBlock)(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL);包含四个参数,cacheType表示图片是从网络下载或本地缓存的
- (void)sd_setImageWithURL:(nullable NSURL *)url
completed:(nullable SDExternalCompletionBlock)completedBlock; - (void)sd_setImageWithURL:(nullable NSURL *)url
placeholderImage:(nullable UIImage *)placeholder
completed:(nullable SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT; - (void)sd_setImageWithURL:(nullable NSURL *)url
placeholderImage:(nullable UIImage *)placeholder
options:(SDWebImageOptions)options
completed:(nullable SDExternalCompletionBlock)completedBlock;
//@param progressBlock 表示在图片在下载时调用的块
- (void)sd_setImageWithURL:(nullable NSURL *)url
placeholderImage:(nullable UIImage *)placeholder
options:(SDWebImageOptions)options
progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
completed:(nullable SDExternalCompletionBlock)completedBlock; - (void)sd_setImageWithPreviousCachedImageWithURL:(nullable NSURL *)url
placeholderImage:(nullable UIImage *)placeholder
options:(SDWebImageOptions)options
progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
completed:(nullable SDExternalCompletionBlock)completedBlock __deprecated_msg("This method is misunderstanding and deprecated, consider using `SDWebImageQueryDiskSync` options with `sd_setImageWithURL:` instead");
2、 SDWebImageOptions 常量
typedef NS_OPTIONS(NSUInteger, SDWebImageOptions ) {
SDWebImageRetryFailed = < < ,
SDWebImageLowPriority = < < ,
SDWebImageCacheMemoryOnly = < < ,
SDWebImageProgressiveDownload = < < ,
SDWebImageRefreshCached = < < ,
SDWebImageContinueInBackground = < < ,
SDWebImageHandleCookies = < < ,
SDWebImageAllowInvalidSSLCertificates = < < ,
SDWebImageHighPriority = < < ,
SDWebImageDelayPlaceholder = < < ,
SDWebImageTransformAnimatedImage = < < ,
SDWebImageAvoidAutoSetImage = < < ,
SDWebImageScaleDownLargeImages = < < ,
};
SDWebImageRetryFailed
默认情况下,当一个url下载失败,会尝试重新下载,如果URL在黑名单中那么SDWebImage库不进行重试。这个标志使黑名单失效。SDWebImageLowPriority
默认情况下,在UI交互中开始图片下载,这个标志使这个特性失效,例如导致在UIScrollView减速中延迟下载。SDWebImageCacheMemoryOnly
此标志在下载完成后禁用磁盘上缓存,仅在内存中缓存。SDWebImageProgressiveDownload
这个标志表示可以逐步下载图片,在下载过程中,网页能够逐步的显示图片。默认情况下,图片只在下载完成后一次性显示。SDWebImageRefreshCached
虽然图片已经被缓存了,但是HTTP响应的缓存控制比较重要,如果需要则从远程地址刷新图片。硬盘缓存将用SDWebImage代替NSURLCache,会导致轻微的性能下降。这个项目帮助处理相同的请求URL而图片已经改变的情况,比如Facebook图形api的概要图片。如果一个缓存的图片被刷新,完成块会被缓存图片调用一次,再被最终的图片调用一次。SDWebImageContinueInBackground
在iOS 4+,当app切换到后台继续下载图片。这是通过向系统请求额外的时间来完成,在后台情况下让请求完成。如果后台任务时间过期那么操作将会被取消。SDWebImageHandleCookies
通过设置NSMutableURLRequest来操作cookies保存到NSHTTPCookieStore。 HTTPShouldHandlerCookies = YES。SDWebImageAllowInvalidSSLCertificates
允许使用不信任的SSL证书。测试目的是有效的。在生产环境被警告。SDWebImageHighPriority
默认情况下,图片在队列中排队下载。这个标志移动他们到前面的队列中。SDWebImageDelayPlaceholder
默认情况下,当图片在加载中默认图片被加载。这个标志将延迟默认图片的显示,直到图片完成加载。SDWebImageTransformAnimatedImage
我们通常在动画图片中不调用transformDownloadedImage代理,大部分的变形代码将损坏图片。使用这个标志在任何情况下变形图片。SDWebImageAvoidAutoSetImage
默认情况下,图片是在下载完成后加载到图片视图。但是在一些情况下,我们想要在设置图片之前进行图片处理(比如,提供一个过滤或添加一个折叠动画)。使用这个标志,如果你想在下载成功后在完成块中手动设置图片。SDWebImageScaleDownLargeImages
默认情况下,图片解码为原始的大小。在iOS,这个标志会把图片缩小到与设备的受限内容相兼容的大小。如果设置了SDWebImageProgressDownload标志,那么缩小被设置为无效。
3、主要管理类
SDImageCache 提供图片缓存
SDWebImageCoder 对网络中下载的图片进行解码操作
SDWebImageDownloader 异步下载图片
4、UIKit层和工具层
在进行网络下载图片时都是通过UIImageView+WebCache类中提供的基础方法,但是所有的最终走向UIView+WebCache以下方法中:
- (void)sd_internalSetImageWithURL:(nullable NSURL *)url
placeholderImage:(nullable UIImage *)placeholder
options:(SDWebImageOptions)options
operationKey:(nullable NSString *)operationKey
setImageBlock:(nullable SDSetImageBlock)setImageBlock
progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
completed:(nullable SDExternalCompletionBlock)completedBlock;
如果好奇UIImageView+WebCache类中的方法还要走向上一层UIView+WebCache类中,那是因为SDWebImage框架还支持对UIButton的图片下载。

SDWebImage第三方库学习的更多相关文章
- SDWebImage第三方库使用注意的一些问题
1.利用"UIImageView+WebCache.h"加载图片数据 例如: UIImage *placeHolderImg = [UIImage imageNamed:@&quo ...
- python第三方库学习(2):requests
Make a Request r = requests.get('https://github.com/timeline.json') Passing Parameters In URLspayloa ...
- iOS开发之第三方库的学习--hpple的使用
前言:因为在开发中很可能会遇到html解析,如果后台提供的数据只有html数据,或者开发的app需要从web前端的html里获取数据,就需要html解析工具了. 关于HTML解析库,可以阅读:收集几个 ...
- 学习SDAutoLayout第三方库的用法总结
---恢复内容开始--- 在做图文混排计算高度我觉得SDAutoLayout布局是最好用的第三方库了,这里学习SDAutoLayout用法总结一下 用法介绍: ) 方法名中带有“SpaceToView ...
- IOS学习:常用第三方库(GDataXMLNode:xml解析库)
IOS学习:常用第三方库(GDataXMLNode:xml解析库) 解析 XML 通常有两种方式,DOM 和 SAX: DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结构(节点树),通过 ...
- Python学习笔记011_模块_标准库_第三方库的安装
容器 -> 数据的封装 函数 -> 语句的封装 类 -> 方法和属性的封装 模块 -> 模块就是程序 , 保存每个.py文件 # 创建了一个hello.py的文件,它的内容如下 ...
- 学习笔记:python3,PIP安装第三方库(2017)
https://pip.pypa.io/en/latest/quickstart/ pip的使用文档 http://www.lfd.uci.edu/~gohlke/pythonlibs/ .whl ...
- python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑
python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时, 一般 ...
- python第三方库——xlrd和xlwt操作Excel文件学习
python第三方库——xlrd和xlwt操作Excel文件学习 1安装: C:\Users\Lenovo>pip install xlwtCollecting xlwt Downloadin ...
随机推荐
- hadoop2.4.1伪分布模式部署
hadoop2.4.1伪分布模式部署 (承接上一篇hadoop2.4.1-src的编译安装继续配置:http://www.cnblogs.com/wrencai/p/3897438.html) 感谢: ...
- db2将原表列notnull属性修改为null属性的方法
今天把自己遇到的一个小问题跟大家分享一下如何修改db2数据库表中列的属性--将列的非空属性改为允许空的属性,修改数据表的某一列属性其实很简单但是里面有需要细节需要dba注意,毕竟数据的安全才是最重要的 ...
- poj 2112(二分+多重匹配)
题目链接:http://poj.org/problem?id=2112 思路:由于要求奶牛走的最远距离的最短路程,显然我们可以二分距离,如果奶牛与挤奶器的距离小于等于limit的情况下,能够满足,则在 ...
- orm查询基本操作
orm ----关系对象模型 orm 的查询两种操作 1.基于对象的查询 oneTo one 一对多 和多对多 对象.关联字段 对象.表名(_set)) 2.基于QUERYset的查询 双下划线即为 ...
- python提供了一个进行hash加密的模块:hashlib
python提供了一个进行hash加密的模块:hashlib下面主要记录下其中的md5加密方式 import hashlib data1 = 'sada' #####字母和数字 m = hashlib ...
- EasyGBS国标流媒体服务器GB28181国标方案安装使用文档
EasyGBS - GB28181 国标方案安装使用文档 下载 安装包下载,正式使用需商业授权, 功能一致 在线演示 在线API 架构图 EasySIPCMS SIP 中心信令服务, 单节点, 自带一 ...
- cvs 文件如何解析?
QList<QStringList> RwCvs::readToList(const QString &path, const QString separator) { QList ...
- [HEOI2014]南园满地堆轻絮
[HEOI2014]南园满地堆轻絮 BZOJ luogu 二分答案贪心check 首先b[1]最小一定优 之后就贪心的最小化b[i]就行 #include<bits/stdc++.h> u ...
- 我的Android进阶之旅------>Android中编解码学习笔记
编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...
- DOM 查找标签
1.直接查找 document.getElementById // 根据ID获取一个标签 document.getElementsByClassName //根据class属性获取 document. ...