繁体   English   中英

使用SDWebImage一次下载两个图像

[英]Use SDWebImage to download two images at once

我正在研究使用SDWebImage将图像下载到我的应用程序中。 我想尽快显示图像,因此服务器上的每个图像都有两个版本。 一种低质量和一种高质量。 当前,我通过使用两个NSURLRequest来实现此目的,每个图像版本一个。 此应用程序可以完美地运行,因为该应用程序将同时下载两个版本,显示低质量,然后在完成下载后将图像更改为高质量版本。

我试图通过使用以下方法来复制它:

[imageView setImageWithURL:lowURL];
[imageView setImageWithURL:highURL];

但是,当我运行该应用程序时,第二个调用会取消第一个调用。 任何与此有关的帮助将不胜枚举。

谢谢

除非没有其他更好的方法,否则修改框架不是解决问题的好方法。

在SDWebImage的UIImageView+WebCache.h类别中,有针对这种情况的方法。

例如:

__weak UIImageView *weakImageView = imageView;
[imageView setImageWithURL:thumbURL placeholderImage:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
    [weakImageView setImageWithURL:bigURL placeholderImage:image];
}];

如果查看UIImageView+WebCache.m文件中的- (void)setImageWithURL:(NSURL *)url ,则会发现[self cancelCurrentImageLoad]; 在第一行中,这是取消当前图像加载操作。 如果要同时加载这两者,则可以尝试注释掉此行以测试它是否可以按预期工作,如果不能,则最好尝试其他方法。

可能可以通过其他方式更好地解决此问题,甚至在显示之前尝试预取图像

这是这样做的快捷代码

let prefetcher = SDWebImagePrefetcher.shared()
let urls :[URL] = [URL(string: imageStringUrl)] 
prefetcher.prefetchURLs(urls)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM