日安!
当我从网上下载完整大小的图片时,我会使用这两个库。
代码:
-(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];
});
});结果显示,整幅图片加载的时间比隐藏指示器(显示占位符图像)要晚。
我做错了什么?
发布于 2015-05-22 14:30:31
在你的代码中,行
[MBProgressHUD hideHUDForView:self.view animated:YES];在下载完成之前执行。
方法sd_setImageWithURL:placeholderImage:是非阻塞线程.
您应该使用completionBlock of sd_setImageWithURL:placeholderImage:completed:并将隐藏方法添加到。
使用块 对于块,可以通知您有关图像下载进度的信息,并且每当图像检索成功与否时:
注意:如果您的图像请求在完成前被取消,则不会调用您的成功或失败块。
试试下面的代码:
-(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];
});
}];
});
}https://stackoverflow.com/questions/30399082
复制相似问题