簡體   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