一、使用cocoapods将库导入工程
在podfile中写入
target'demo2' do
pod 'SDWebImage', '~>3.8’
end
终端更新一下podfile
pod update
二、使用方式
项目中引入头文件
#import <SDWebImage/UIImageView+WebCache.h>
(一)简单的图片存储
1.获取当前图片的地址
- (NSURL *)sd_imageURL;
2、下载网络图片并缓存
- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder;
3.下载完成图片后并执行回调
- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder completed:(SDWebImageCompletionBlock)completedBlock;
(二)对按钮的处理
#import "UIButton+WebCache.h”
1、设置不同状态的按钮的图片
- (void)sd_setImageWithURL:(NSURL *)url forState:(UIControlState)state;
2、设置不同状态的按钮的背景图片
- (void)sd_setBackgroundImageWithURL:(NSURL *)url forState:(UIControlState)state placeholderImage:(UIImage *)placeholder;
(三)SDWebImageOptions
1.SDWebImageRetryFailed 失败后重试
2.SDWebImageLowPriority 延迟下载
3.SDWebImageCacheMemoryOnly 只在内存缓存
4.SDWebImageProgressiveDownload 渐进式下载,显示的图像是逐步在下载
5.SDWebImageRefreshCached 刷新缓存,专门处理相同url,但不同image的情况的
6.SDWebImageContinueInBackground 启动后台下载,app进入后台后继续下载
7.SDWebImageHandleCookies 处理存储在NSHTTPCookieStore中的cookie
8. SDWebImageAllowInvalidSSLCertificates 允许使用无效的SSL证书,主要用于测试目的,在正式环境中慎用
9. SDWebImageHighPriority 优先下载
10. SDWebImageDelayPlaceholder 等待下载完成后再显示占位图片,延迟显示占位图片
11. SDWebImageTransformAnimatedImage 改变动画形象
12. SDWebImageAvoidAutoSetImage 下载完成后手动设置图片,默认是下载完成后自动放到ImageView上
(四)缓存类型—SDImageCacheType
1.SDImageCacheTypeNone永不缓存,但是从网上下载
2.SDImageCacheTypeDisk只缓存到磁盘上
3.SDImageCacheTypeMemory只缓存到内存中
三、sd_webImage实现原理
(一)内部实现重要类
1.SDWebImageManager
2.SDWebImageDownloader
3.SDWebImageDownloaderOperation
4.SDImageCache
5.SDWebImageDecoder