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图片