Skip to content

Commit 3974a3a

Browse files
committed
button category support progress
1 parent b77a3eb commit 3974a3a

File tree

2 files changed

+20
-7
lines changed

2 files changed

+20
-7
lines changed

SDWebImage/UIButton+WebCache.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@
9393
*/
9494
- (void)setImageWithURL:(NSURL *)url forState:(UIControlState)state placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options completed:(SDWebImageCompletedBlock)completedBlock;
9595

96+
- (void)setImageWithURL:(NSURL *)url forState:(UIControlState)state placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageCompletedBlock)completedBlock;
97+
9698
/**
9799
* Set the backgroundImageView `image` with an `url`.
98100
*
@@ -171,6 +173,8 @@
171173
*/
172174
- (void)setBackgroundImageWithURL:(NSURL *)url forState:(UIControlState)state placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options completed:(SDWebImageCompletedBlock)completedBlock;
173175

176+
- (void)setBackgroundImageWithURL:(NSURL *)url forState:(UIControlState)state placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageCompletedBlock)completedBlock;
177+
174178
/**
175179
* Cancel the current download
176180
*/

SDWebImage/UIButton+WebCache.m

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,18 @@ - (void)setImageWithURL:(NSURL *)url forState:(UIControlState)state placeholderI
3434
}
3535

3636
- (void)setImageWithURL:(NSURL *)url forState:(UIControlState)state placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options completed:(SDWebImageCompletedBlock)completedBlock {
37-
[self cancelCurrentImageLoad];
37+
[self setImageWithURL:url forState:state placeholderImage:placeholder options:options progress:nil completed:completedBlock];
38+
}
3839

40+
- (void)setImageWithURL:(NSURL *)url forState:(UIControlState)state placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageCompletedBlock)completedBlock
41+
{
42+
[self cancelCurrentImageLoad];
43+
3944
[self setImage:placeholder forState:state];
40-
45+
4146
if (url) {
4247
__weak UIButton *wself = self;
43-
id <SDWebImageOperation> operation = [SDWebImageManager.sharedManager downloadWithURL:url options:options progress:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished) {
48+
id <SDWebImageOperation> operation = [SDWebImageManager.sharedManager downloadWithURL:url options:options progress:progressBlock completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished) {
4449
if (!wself) return;
4550
dispatch_main_sync_safe(^{
4651
__strong UIButton *sself = wself;
@@ -78,13 +83,18 @@ - (void)setBackgroundImageWithURL:(NSURL *)url forState:(UIControlState)state pl
7883
}
7984

8085
- (void)setBackgroundImageWithURL:(NSURL *)url forState:(UIControlState)state placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options completed:(SDWebImageCompletedBlock)completedBlock {
81-
[self cancelCurrentImageLoad];
86+
[self setBackgroundImageWithURL:url forState:state placeholderImage:placeholder options:options progress:nil completed:completedBlock];
87+
}
8288

89+
- (void)setBackgroundImageWithURL:(NSURL *)url forState:(UIControlState)state placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageCompletedBlock)completedBlock
90+
{
91+
[self cancelCurrentImageLoad];
92+
8393
[self setBackgroundImage:placeholder forState:state];
84-
94+
8595
if (url) {
8696
__weak UIButton *wself = self;
87-
id <SDWebImageOperation> operation = [SDWebImageManager.sharedManager downloadWithURL:url options:options progress:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished) {
97+
id <SDWebImageOperation> operation = [SDWebImageManager.sharedManager downloadWithURL:url options:options progress:progressBlock completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished) {
8898
if (!wself) return;
8999
dispatch_main_sync_safe(^{
90100
__strong UIButton *sself = wself;
@@ -101,7 +111,6 @@ - (void)setBackgroundImageWithURL:(NSURL *)url forState:(UIControlState)state pl
101111
}
102112
}
103113

104-
105114
- (void)cancelCurrentImageLoad {
106115
// Cancel in progress downloader from queue
107116
id <SDWebImageOperation> operation = objc_getAssociatedObject(self, &operationKey);

0 commit comments

Comments
 (0)