美文网首页
如何使用GCD异步加载图片

如何使用GCD异步加载图片

作者: small_Sun | 来源:发表于2016-03-03 21:42 被阅读385次

    //访问网络

    //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

    });

    });

    相关文章

      网友评论

          本文标题:如何使用GCD异步加载图片

          本文链接:https://www.haomeiwen.com/subject/ewhokttx.html