BBASMSDWebImageUtil.h
4.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
//
// BBASMSDWebImageUtil.h
// BBAMNP
//
// Created by yangshuo on 2020/11/13.
//
#import <Foundation/Foundation.h>
#import <BBAImageView/BBAImageView.h>
NS_ASSUME_NONNULL_BEGIN
/// 运行时调度,兼容sdweb不同版本的api
/// 参考SDWebImage迁移文档:
/// 3.x -> 4.x版本:https://github.com/SDWebImage/SDWebImage/blob/master/Docs/SDWebImage-4.0-Migration-guide.md
/// 4.x -> 5.x版本:https://github.com/SDWebImage/SDWebImage/blob/b57eae42df0bbaa726cf3b00964d17fd177789a2/Docs/SDWebImage-5.0-Migration-guide.md
@interface BBASMSDWebImageUtil : NSObject
/// 对SDWebImage的sd_setImageWithURL:进行封装
/// @param url 图片远端地址
/// @param imageView imageView 视图
+ (void)setImageWithURL:(NSURL *)url inImageView:(UIImageView *)imageView;
/// 对SDWebImage的sd_setImageWithURL:placeholderImage:进行封装
/// @param url 图片远端地址
/// @param placeHolderImage 占位图
/// @param imageView imageView 视图
+ (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeHolderImage inImageView:(UIImageView *)imageView;
/// 对SDWebImage的sd_setImageWithURL:placeholderImage:进行封装
/// @param url 图片远端地址
/// @param placeHolderImage 占位图
/// @param completedBlock 下载完成回调
/// @param imageView imageView 视图
+ (void)setImageWithURL:(nullable NSURL *)url
placeholderImage:(UIImage *)placeHolderImage
completed:(void(^)(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL))completedBlock
inImageView:(UIImageView *)imageView;
/// 对[SDWebImageDownloader sharedDownloader] downloadImageWithURL:options:progressBlock:completedBlock的封装
/// @param url url 图片远端地址
/// @param options 下载选项配置
/// @param progressBlock 进度
/// @param completedBlock 完成
+ (void)downloadImageWithURL:(nullable NSURL *)url
options:(SDWebImageDownloaderOptions)options
progress:(void(^)(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL))progressBlock
completed:(void(^)(UIImage *image, NSData *data, NSError *error, BOOL finished))completedBlock;
/// 对SDImageCache storeImage:forkey:completion的封装,兼容不同SDImageView版本
/// @param image image
/// @param key 存储key
+ (void)storeImage:(nullable UIImage *)image forKey:(NSString *)key completion:(SDWebImageNoParamsBlock)completionBlock;
/// 给Button设置背景图片,对sd_setBackgroundImageWithURL:forState的封装
/// @param url 图片远端地址
/// @param state button状态
/// @param button button视图
+ (void)setBackgroundImageWithURL:(nullable NSURL *)url
forState:(UIControlState)state
inButton:(UIButton *)button;
/// 转换webpData到image,如果宿主引用SDWebImage/WebP了实现了sd_imageWithWebPData:会在运行时调用,否则需要宿主去实现
/// @param data webpData
+ (UIImage *_Nullable)imageWithWebPData:(NSData *)data;
/// 对SDWebImage下的,imageDataForKey和diskImageDataBySearchingAllPathsForKey进行桥接,以适配不同版本的SDWebImage
/// @param key 请求url
/// @param imageCache 缓存
+ (NSData *_Nullable)diskImageDataBySearchingAllPathsForKey:(NSString *)key
imageCache:(SDImageCache *)imageCache;
/// 删除硬盘缓存
+ (void)removeDiskCachePath:(SDImageCache *)imageCache;
/// 设置是否内存缓存,shouldCacheImagesInMemory(SDImageCache 4.x ) -> SDImageCacheConfig(5.x)
/// @param shouldCacheImagesInMemory NO,不设置
/// @param imageCache imageCache
+ (void)shouldCacheImagesInMemory:(BOOL)shouldCacheImagesInMemory
imageCache:(SDImageCache *)imageCache;
/// imagedata的数据类型,返回image/jpeg等
/// @param data data
+ (NSString *)contentTypeForImageData:(NSData *)data;
/// 清理磁盘
/// @param imageCache imageCache
+ (SDWebImageManager *)imageManageWithCache:(SDImageCache *)imageCache
loader:(SDWebImageDownloader *)loader;
/// 查询缓存图片是否存在
/// @param url url
/// @param manager manager
+ (BOOL)cachedImageExistsForURL:(NSURL *)url
manager:(SDWebImageManager *)manager;
/// 获取SDWebImageManager的downloader,对[manager imageLoader]的封装,兼容不同SDImageView版本
/// @param manager manager
+ (SDWebImageDownloader *)getDownloaderOfManager:(SDWebImageManager *)manager;
/// 读取SDImageLoader的session
/// @param downloader downloader
+ (NSURLSession *)getSessionOfDownloader:(NSObject *)downloader;
/// 设置SDImageLoader的session
/// @param session session
/// @param downloader downloader
+ (void)setSession:(NSURLSession *)session inDownloader:(NSObject *)downloader;
@end
NS_ASSUME_NONNULL_END