iOS异步加载网络图片
2016-11-16 11:44
204 查看
当我们从一个界面跳到下一个界面,而下一个界面需要从网络加载图片的时候
大体的思路是:
但是有一个问题是,在UI线程处理这个事务的话,界面会等到下载完成后再去跳转,对体验很不好
所以我们把这个下载图片的事务使用GCD做异步处理
大体的思路是:
NSURL * url = [NSURL URLWithString:urlStr]; NSData * data = [NSData dataWithContentsOfURL:url]; UIImage * image = [UIImage imageWithData:data]; [self.photos addObject:image];//self.photos是显示图片的数据源
但是有一个问题是,在UI线程处理这个事务的话,界面会等到下载完成后再去跳转,对体验很不好
所以我们把这个下载图片的事务使用GCD做异步处理
- (void)getImageFromUrl:(NSString *)urlStr{ dispatch_async(dispatch_get_global_queue(0, 0), ^{ //在此处处理耗时操作 NSURL * url = [NSURL URLWithString:urlStr]; NSData * data = [NSData dataWithContentsOfURL:url]; UIImage * image = [UIImage imageWithData:data]; dispatch_async(dispatch_get_main_queue(), ^{ //在主线程刷新 [_selectedPhotos addObject:image]; [_selectedAssets addObject:image]; [self.addPhotoCollectionView reloadData]; }); }); }这样就可以实现一边跳转界面一边下载图片了,每下载一张图片都会刷新一下界面,将图片显示出来。
相关文章推荐
- iOS网络编程(三) 异步加载及缓存图片---->SDWebImage
- IOS开发之异步加载网络图片并缓存本地实现瀑布流(二)
- iOS网络编程(三) 异步加载及缓存图片---->SDWebImage
- 【代码笔记】iOS-实现网络图片的异步加载和缓存
- iOS_第3方类库_EGOImageView异步加载网络图片
- 【代码笔记】iOS-实现网络图片的异步加载和缓存
- ios UIImageView异步加载网络图片2
- iOS 异步加载网络图片,获取图片真实尺寸
- iOS网络编程(三) 异步加载及缓存图片---->SDWebImage
- iOS网络编程(五) 异步加载及缓存图片-----EGO
- iOS-网络图片通过NSOperation线程依赖异步加载并保存到沙盒中
- IOS从网络上异步加载一系列的图片并显示在tableview上的例子
- IOS开发之异步加载网络图片并缓存本地实现瀑布流(一)
- iOS-UIImageView加载网络下载的图片(异步+多线程)
- 【代码笔记】iOS-实现网络图片的异步加载和缓存
- ios UIImageView异步加载网络图片
- iOS开发swift版异步加载网络图片(带缓存和缺省图片)
- iOS异步加载网络图片
- iOS开发swift版异步加载网络图片(带缓存和缺省图片)
- iOS网络编程(三) 异步加载及缓存图片---->SDWebImage