导入头文件
#import "UIImageView+WebCache.h"
使用方式
//图片缓存并显示
[self.imageView sd_setImageWithURL:URL];
//带完成调用的block
[self.imageView sd_setImageWithURL:URL completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
}];
//使用占为图片
[self.imageView sd_setImageWithURL:URL placeholderImage:[UIImage imageNamed:@"IMG_0700"]];
//使用占为图片并带完成block
[self.imageView sd_setImageWithURL:URL placeholderImage:[UIImage imageNamed:@"IMG_0700"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
}];
//options 选择方式
[self.imageView sd_setImageWithURL:URL placeholderImage:[UIImage imageNamed:@"IMG_0700"] options:SDWebImageRetryFailed];
options选项
//默认情况下,如果一个url在下载的时候失败了,那么这个url会被加入黑名单并且library不会尝试再次下载,
//这个flag会阻止library把失败的url加入黑名单(简单来说如果选择了这个flag,那么即使某个url下载失败了,sdwebimage还是会尝试再次下载他.)
SDWebImageRetryFailed = 1 << 0,
// 默认情况下,图片会在交互发生的时候下载(例如你滑动tableview的时候),这个flag会禁止这个特性,导致的结果就是在scrollview减速的时候
// 才会开始下载(也就是你滑动的时候scrollview不下载,你手从屏幕上移走,scrollview开始减速的时候才会开始下载图片)
SDWebImageLowPriority = 1 << 1,
//只进行内存缓存
SDWebImageCacheMemoryOnly = 1 << 2,
//这个标志可以渐进式下载,显示的图像是逐步在下载
SDWebImageProgressiveDownload = 1 << 3,
//即使一个图片缓存了,还是会重新请求.
SDWebImageRefreshCached = 1 << 4,
//后台下载
SDWebImageContinueInBackground = 1 << 5,
//NSMutableURLRequest.HTTPShouldHandleCookies = YES;
//可以控制存在NSHTTPCookieStore的cookies.(没用过)
SDWebImageHandleCookies = 1 << 6,
//允许使用无效的SSL证书
//SDWebImageAllowInvalidSSLCertificates = 1 << 7,
//优先下载
SDWebImageHighPriority = 1 << 8,
//延迟占位符
SDWebImageDelayPlaceholder = 1 << 9,
//(是否是图片有可能方向不对需要调整方向?)
SDWebImageTransformAnimatedImage = 1 << 10,
原理
SDWebImage原理图.jpg
补充
SDWebImage默认的是内存+沙盒缓存。
网友评论