首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SDWebImage + MBProgressHUD

SDWebImage + MBProgressHUD
EN

Stack Overflow用户
提问于 2015-05-22 14:16:18
回答 1查看 209关注 0票数 0

日安!

当我从网上下载完整大小的图片时,我会使用这两个库。

代码:

代码语言:javascript
复制
-(void)viewDidAppear:(BOOL)animated
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^
    {
        [imageView sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@", img]] placeholderImage:[UIImage imageNamed:@"stub_image.jpg"]];

    dispatch_async(dispatch_get_main_queue(), ^
    {
      [MBProgressHUD hideHUDForView:self.view animated:YES];
    });
});

结果显示,整幅图片加载的时间比隐藏指示器(显示占位符图像)要晚。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-22 14:30:31

在你的代码中,行

代码语言:javascript
复制
[MBProgressHUD hideHUDForView:self.view animated:YES];

在下载完成之前执行。

方法sd_setImageWithURL:placeholderImage:非阻塞线程.

您应该使用completionBlock of sd_setImageWithURL:placeholderImage:completed:并将隐藏方法添加到。

使用块 对于块,可以通知您有关图像下载进度的信息,并且每当图像检索成功与否时:

注意:如果您的图像请求在完成前被取消,则不会调用您的成功或失败块。

试试下面的代码:

代码语言:javascript
复制
-(void)viewDidAppear:(BOOL)animated
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ {
                [imageView sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@", img]] placeholderImage:[UIImage imageNamed:@"stub_image.jpg"]
                            completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL)
                    {
                        dispatch_async(dispatch_get_main_queue(), ^ {
                            [MBProgressHUD hideHUDForView:self.view animated:YES];
                        });
        }];
    });
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30399082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档