iOS 開發之 為UIButton新增類別方法載入網路圖片
阿新 • • 發佈:2019-01-31
UIButton+WebCache.h
#import <UIKit/UIKit.h>
// 為Button新增類別方法
@interface UIButton (WebCache)
- (void)xr_setButtonImageWithUrl:(NSString *)urlStr;
@end
UIButton+WebCache.m
#import "UIButton+WebCache.h"
@implementation UIButton (WebCache)
- (void)xr_setButtonImageWithUrl:(NSString *)urlStr {
NSURL * url = [NSURL URLWithString:urlStr];
// 根據圖片的url下載圖片資料
dispatch_queue_t xrQueue = dispatch_queue_create("loadImage", NULL); // 建立GCD執行緒佇列
dispatch_async(xrQueue, ^{
// 非同步下載圖片
UIImage * img = [UIImage imageWithData:[NSData dataWithContentsOfURL:url]];
// 主執行緒重新整理UI
dispatch_async(dispatch_get_main_queue(), ^{
[self setImage:img forState:UIControlStateNormal];
});
});
}
@end