iOS 开发 多线程详解之NSThread异步线程下载网络图片
2016-11-23 23:36
751 查看
1.定义属性
@interface ViewController () /// 图片视图 @property (nonatomic,weak) UIImageView *imageView; @end
2.加载视图层次
loadView : 手动创建根视图,实现了这个方法视图控制器的view就不会从SB中加载了.当self.view==nil的时候就会调用这个方法.- (void)setUpUI { self.view.backgroundColor = [UIColor redColor]; // 创建图片视图 UIImageView *imageView = [[UIImageView alloc] init]; [self.view addSubview:imageView]; self.imageView = imageView; }
3.异步下载网络数据
- (void)viewDidLoad { [super viewDidLoad]; [self setUpUI]; // 开启新线程异步下载图片 [self performSelectorInBackground:@selector(downloadImageData) withObject:nil]; }
/// 异步下载网络数据
- (void)downloadImageData { // 图片资源地址 NSURL *url = [NSURL URLWithString:@"http://h.hiphotos.baidu.com/image/pic/item/c995d143ad4bd1130c0ee8e55eafa40f4afb0521.jpg"]; // 所有的网络数据都是以二进制的形式传输的,所以用NSData来接受 NSData *data = [NSData dataWithContentsOfURL:url]; UIImage *image = [UIImage imageWithData:data]; // 回到主线程更新UI // waitUntilDone:是否等待主线程执行结束再 4000 执行"下一行代码",一般设置成NO,不用等待 [self performSelectorOnMainThread:@selector(setupImageViewWithImage:) withObject:image waitUntilDone:NO]; // 测试 waitUntilDone: NSLog(@"下一行代码"); }
4.设置图片视图
/// 设置图片视图 - (void)setupImageViewWithImage:(UIImage *)imgae { NSLog(@"setupImageView"); // 设置图片视图 self.imageView.image = image; // 设置图片视图的大小跟图片一般大 [self.imageView sizeToFit]; }
相关文章推荐
- iPhone开发【十五】多线程开发之NSThread——异步下载图片
- iPhone开发【十五】多线程开发之NSThread——异步下载图片
- iOS 开发 多线程详解之NSThread线程通信的操作与控制
- ios NSThread 线程锁,多线程下载图片
- iOS-UIImageView加载网络下载的图片(异步+多线程)
- iPhone开发【十七】多线程开发之NSOperation&NSOperationQueue——异步下载图片
- iPhone开发【十七】多线程开发之NSOperation&NSOperationQueue——异步下载图片
- iPhone开发【十七】多线程开发之NSOperation&NSOperationQueue——异步下载图片
- 多线程开发NSOperation&NSOperationQueue——异步下载图片
- iOS开发之多线程(NSThread创建线程)
- IOS_1,ios多线程使用:NSThread和NSOperation异步加载图片
- 多线程开发之NSOperation&NSOperationQueue——异步下载图片
- IOS线程数据篇2之多线程:NSThread NSOperation GCD(一)
- 猫猫学iOS(五十一)多线程网络之GCD下载合并图片_队列组的使用
- iOS多线程编程之NSThread的使用 分类: ios开发 2015-01-01 12:36 123人阅读 评论(0) 收藏
- IOS 开发进阶--多线程和网络--NSThread 的详解
- IOS开发之异步加载网络图片并缓存本地实现瀑布流(二)
- 学习IOS开发网络多线程篇--NSThread/GCD/
- iOS多线程_05_线程间通信NSThread/GCD
- iOS开发—iOS多线程编程之NSThread的使用