多个tableview复用cell,cell内写了多个imageview是否显示导致页面加载极其缓慢

现在有多个tableview复用一个cell,因为现在新添加了imageview,所以我将所有tableview各自的imageview和约束与这个cell关联,在cell里写了一个若是有图片则显示图片,没有imageview height=0的方法,不过应该是我将所有imageview的判断都写在一个方法里所以导致页面加载特别缓慢,求问有什么改进方法吗。下面是我写的方法:
图片描述

阅读 3k
2 个回答

加载缓慢的主要原因不是多个imageView, 而是detaWithContentsOfURL在主线程中加载数据, 导致主线程阻塞.
可以把数据请求操作放在子线程中, 然后回到主线程刷新UI. 或者使用SDWebImage加载图片.

// 全局的异步并发
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    NSURL *url = [NSURL URLWithString:imageURL];
    // 加载图片
    NSData *data = [NSData dataWithContentsOfURL:url];
    // 生成图片
    UIImage *image = [UIImage imageWithData:data];
    // 回到主线程,执行 UI 刷新操作
    dispatch_async(dispatch_get_main_queue(), ^{
        self.imageView.image = image;
    });
});
新手上路,请多包涵

用SDWebImage分分钟解决你的问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题