如何使用GCD异步加载图片

//访问网络

//NSAppTransportSecurity////NSAllowsArbitraryLoads//

使用GCD异步加载图片

第一步:定义属性 

```

@interface ViewController ()

 @property (nonatomic, strong) UIScrollView scrollView; @property (nonatomic, strong) UIImageView imageView; @end

@implementation ViewController

```

第二步: 初始化控件 

```

- (void)loadView { 

 self.scrollView = [[UIScrollView alloc] initWithFrame:       [UIScreen mainScreen].bounds]; self.scrollView.backgroundColor = [UIColor redColor]; self.view = self.scrollView;

self.imageView = [[UIImageView alloc] init];

[self.scrollView addSubview:self.imageView];

}

(void)viewDidLoad { [super viewDidLoad];

```

第三步: 使用GCD异步下载网络图片

```

// 异步下载网络图片 dispatch_async(dispatch_get_global_queue(0, 0), ^{ 

// 1. URL NSURL url = [NSURL URLWithString:@"http://g.hiphotos.baidu.com/image/pic/item/472309f790529822c4ac8ad0d5ca7bcb0a46d402.jpg"]; // 2. data NSData data = [NSData dataWithContentsOfURL:url];

 // 3. image UIImage *image = [UIImage imageWithData:data]; 

// 4. 主线程更新UI dispatch_sync(dispatch_get_main_queue(), ^{ self.imageView.image = image; [self.imageView sizeToFit];

self.scrollView.contentSize = image.size;

});

});

```

注意:异步加载网络图片的代码必须能敲出来,面试有可能笔试或机试,1期有同学机试遇到过。 需求: 从网络上下载图片,然后更新图片,用代码实现。 dispatch_async(dispatch_get_global_queue(0, 0), ^{ // 异步下载图片

```

dispatch_sync(dispatch_get_main_queue(), ^{

// 主线程更新UI

});

});

```

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文地址 http://www.cnblogs.com/kenshincui/p/3983982.html 大家都...
    怎样m阅读 1,318评论 0 1
  • NSThread 第一种:通过NSThread的对象方法 NSThread *thread = [[NSThrea...
    攻城狮GG阅读 861评论 0 3
  • 茫茫人海中,会遇到许许多多的人,或多或少的陪你走一程,不知道会在哪个分叉路口就分开了。感谢每一个陪你走过一程的人,...
    若水77阅读 616评论 8 2
  • 每每过年都有不一样的心情 小时候有新衣有压岁钱还有不厌其烦的烟花爆竹,高高兴兴过年依依不舍上学 到了不用写作业的大...
    北极熊看见了刚果拉阅读 271评论 0 0
  • 想起了一个我在小城镇里经历的故事,那是个很好的姑娘,个子高高的,长的好好的,她喜欢看小说,那是我上初中比较印象深的...
    翔于阅读 321评论 0 0