iOS 开发之 为UIButton添加类别方法加载网络图片
2016-08-04 10:22
513 查看
使用GCD线程队列实现
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
使用:
[_ImgBtn xr_setButtonImageWithUrl:@"http://img3.3lian.com/2014/c2/66/d/56.jpg"];
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
使用:
[_ImgBtn xr_setButtonImageWithUrl:@"http://img3.3lian.com/2014/c2/66/d/56.jpg"];
相关文章推荐
- iOS 开发之 为UIButton添加类别方法加载网络图片
- iOS 开发之 为UIButton添加类别方法加载网络图片
- IOS开发中加载大量网络图片优化方法
- iOS开发学习笔记之swift3.0几种加载网络图片的方法
- IOS开发网络加载图片缓存策略之──ASIDownloadCache缓存策略
- IOS开发之异步加载网络图片并缓存本地实现瀑布流(一)
- iOS开发之加载大量网络图片优化
- iOS 开发之网络图片自适应宽高度加载
- IOS开发网络加载图片缓存策略之──ASIDownloadCache缓存策略
- IOS开发之异步加载网络图片并缓存本地实现瀑布流(二)
- iOS开发之--如何修改TabBarItem的title的字体和颜色/BarButtonItem的title的字体大小和颜色/添加背景图片,并添加点击方法
- IOS开发网络加载图片缓存策略之──ASIDownloadCache缓存策略
- IOS开发笔记 - 基于SDWebImage的网络图片加载处理
- IOS开发网络加载图片缓存策略之──ASIDownloadCache缓存策略
- IOS开发网络加载图片缓存策略之──ASIDownloadCache缓存策略
- iOS开发swift版异步加载网络图片(带缓存和缺省图片)
- IOS开发之异步加载网络图片并缓存本地实现瀑布流(二)
- IOS开发笔记 - 基于SDWebImage的网络图片加载处理
- IOS开发网络加载图片缓存策略之──ASIDownloadCache缓存策略
- iOS开发swift版异步加载网络图片(带缓存和缺省图片)