美文网首页
实现多线程下载图片后在布局UI

实现多线程下载图片后在布局UI

作者: yaoyao妖妖 | 来源:发表于2018-02-07 11:09 被阅读10次

Sdwebimage异步下载多张图片

dispatch_group_t group = dispatch_group_create();
// 有多张图片URL的数组
NSArray *imageURLArr = @[@"url",@"url",@"url"];
for (NSString *imageUrlStr in imageURLArr) {
    dispatch_group_enter(group);
    // 需要加载图片的控件(UIImageView, UIButton等)
    UIImageView *imageView = [UIImageView new];
    [imageView sd_setImageWithURL:[NSURL URLWithString:imageUrlStr] completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
        if (error) {
            // 加载失败
        } else {
            // 加载成功
        }
        dispatch_group_leave(group);
    }];
}
// 下载图片完成后, 回到主线
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
    // 刷新UI
});
和内存管理的引用计数类似,我们可以认为group也持有一个整形变量(只是假设),
当调用enter时计数加1,调用leave时计数减1,
当计数为0时会调用dispatch_group_notify并且dispatch_group_wait会停止等待;

详细dispatch_group_t group 参考:
https://www.jianshu.com/p/228403206664

相关文章

  • 实现多线程下载图片后在布局UI

    Sdwebimage异步下载多张图片 详细dispatch_group_t group 参考:https://ww...

  • UI线性渐变

    布局实现:UI 设计: 转换为android的UI,实现: 在res中建立drawable文件夹。 在drawab...

  • C# 多线程

    多线程怎么访问Ui线程 git地址下载代码

  • GCD线程同步

    根据使用场景设计代码 多线程下载多个图片,图片全部下载完成后,执行需要的任务 方法一: dispatch_grou...

  • UILabel添加图片,设置段落样式

    在实现UI的时候,文字和图片混排显示数据。如果每一个段文字和小图片都是单独的控件,在创建和布局的时候十分麻烦和...

  • 多线程总结

    关于多线程 (一).多线程主线程:显示/刷新UI界面,处理UI事件子线程:处理耗时操作 例如网络访问[图片上传失...

  • requests+asyncio实现异步抓取网页

    之前写一个抓取某图片网站的图片的Python脚本,觉得下载了太慢,就考虑使用多线程实现,下面记录下实现思路。 使用...

  • iOS多图下载案例(二)

    利用缓存优化后 //UI很不流畅-》开子线程下载//图片重复下载-》缓存//内存缓存-》磁盘缓存//documen...

  • 多线程实现多图片下载

    本文参考: http://www.jb51.net/article/81614.htm难点: 如何从网上下载这些图...

  • UITableView多图下载

    UITableViewCell加载图片的问题: UI不流畅 ---------> 在主线程下载图片,导致卡顿,需要...

网友评论

      本文标题:实现多线程下载图片后在布局UI

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