如何用sdwebimage下载多张图片,并在全部下载完后在主线程拿到所有图片并进行Ui更新呢?
2 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
用GCDdispatch_group_tgroup=dispatch_group_create();//有多张图片URL的数组NSArray*imageURLArr=@[@"url",@"url",@"url"];for(NSString*imageUrlStrinimageURLArr){dispatch_group_enter(group);//需要加载图片的控件(UIImageView,UIButton等)UIImageView*imageView=[UIImageViewnew];[imageViewsd_setImageWithURL:[NSURLURLWithString:imageUrlStr]completed:^(UIImage*_Nullableimage,NSError*_Nullableerror,SDImageCacheTypecacheType,NSURL*_NullableimageURL){if(error){//加载失败}else{//加载成功}dispatch_group_leave(group);}];}//下载图片完成后,回到主线dispatch_group_notify(group,dispatch_get_main_queue(),^{//刷新UI});
慕斯709654
TA贡献1840条经验 获得超5个赞
我在使用这个方式的时候,发现图片少的时候是没有问题的,但是当图片量多的时候,会出现for循环的时候,只在imageViewsd_这里断点停留,但是不进入completed里面,而且在循环到7-8次的时候,就不在循环,界面也一直显示我初始设置的SVPugress的东西,不进入回到主线的部分,我查找了相关的帖子发现可能是超过的SDWebImage的缓存值,图片大概是3500*1200的样子,然后我试着去修复,改用UIImageView+AFNetworking来做下载图片,但是遇到了XPC问题XPCconnectioninterrupted不知道该怎么去解决,找到的相关帖子写的内容只是将界面Navpop跳转的情况,而不是这里的问题我该怎么解决呢?能否提供一些思路
添加回答
举报
0/150
提交
取消