1. 程式人生 > >iOS 開發之 為UIButton新增類別方法載入網路圖片

iOS 開發之 為UIButton新增類別方法載入網路圖片

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