博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

iOS开发SDWebImageOptions理解

Posted on 2017-07-19 11:47  肖无情  阅读(3505)  评论(0编辑  收藏  举报

iOS开发SDWebImageOptions理解

复制代码
typedef NS_OPTIONS(NSUInteger, SDWebImageOptions) {

    SDWebImageRetryFailed = 1 << 0,

    SDWebImageLowPriority = 1 << 1,

    SDWebImageCacheMemoryOnly = 1 << 2,

    SDWebImageProgressiveDownload = 1 << 3,

    SDWebImageRefreshCached = 1 << 4,

    SDWebImageContinueInBackground = 1 << 5,

    SDWebImageHandleCookies = 1 << 6,

    SDWebImageAllowInvalidSSLCertificates = 1 << 7,

    SDWebImageHighPriority = 1 << 8,

    SDWebImageDelayPlaceholder = 1 << 9,

    SDWebImageTransformAnimatedImage = 1 << 10,

    SDWebImageAvoidAutoSetImage = 1 << 11
};
复制代码

SDWebImageRetryFailed = 1 << 0,

默认情况下,如果一个url在下载的时候失败了,那么这个url会被加入黑名单并且library不会尝试再次下载,这个flag会阻止library把失败的url加入黑名单(简单来说如果选择了这个flag,那么即使某个url下载失败了,sdwebimage还是会尝试再次下载他

 

 

SDWebImageLowPriority = 1 << 1,

默认情况下,图片会在交互发生的时候下载(例如你滑动tableview的时候),这个flag会禁止这个特性,导致的结果就是在scrollview减速的时候,才会开始下载(也就是你滑动的时候scrollview不下载,你手从屏幕上移走,scrollview开始减速的时候才会开始下载图片

 

 


SDWebImageCacheMemoryOnly = 1 << 2,

这个flag禁止磁盘缓存,只有内存缓存

 

 

SDWebImageProgressiveDownload = 1 << 3,

这个flag会在图片下载的时候就显示(就像你用浏览器浏览网页的时候那种图片下载,一截一截的显示(待确认))

 

 

SDWebImageRefreshCached = 1 << 4, 具体处理

一个图片即使已经缓存了,还是会根据url进行重新请求.并且缓存策略依据NSURLCache而不是SDWebImage,

 

SDWebImageContinueInBackground = 1 << 5,

启动后台下载,加入你进入一个页面,有一张图片正在下载这时候你让app进入后台,图片还是会继续下载(这个估计要开backgroundfetch才有用)

 

SDWebImageHandleCookies = 1 << 6,

可以控制存在NSHTTPCookieStore的cookies.

 

SDWebImageAllowInvalidSSLCertificates = 1 << 7,

允许不安全的SSL证书,在正式环境中慎用

 

SDWebImageHighPriority = 1 << 8,

默认情况下,image在装载的时候是按照他们在队列中的顺序装载的(就是先进先出).这个flag会把他们移动到队列的前端,并且立刻装载,而不是等到当前队列装载的时候再装载.

 

SDWebImageDelayPlaceholder = 1 << 9,

默认情况下,占位图会在图片下载的时候显示.这个flag开启会延迟占位图显示的时间,等到图片下载完成之后才会显示占位图.

 

SDWebImageTransformAnimatedImage = 1 << 10,

是否transform图片