2013-02-22 64 views
2

在iOS 5.1項目(iPad)中使用SDWebImage 3。SDWebImage顯示緩存中圖像的佔位符

我們顯示相當大的圖像(700x500),我們有很多(1000)。我們預取圖像並緩存到磁盤,然後允許用戶瀏覽它們。

它工作正常。除了當您瀏覽圖片時,您總是會看到佔位符顯示的一小段時間,從而產生非常煩人的效果。

在我的使用情況下,等待一小段時間來檢查磁盤緩存和進程,而不是顯示一個佔位符的時間少於半秒(它基本上只是閃爍)是更可取的。

我的問題類似於這個:How to get filesystem path to image cached with SDWebImage (iOS)。注意:嘗試清理緩存的文件系統路徑的方法在我看來是錯誤的。我只是引用它,因爲它也解釋了我的用例。

我想要的是一種告訴SDWebImage如果圖像在本地存儲中不使用佔位符的方法。如果我不能這樣做,我可能需要尋找其他庫(我歡迎提供意見)。

注意:我們也使用RestKit(0.20)+ AFNetworking。

+0

你爲什麼不修改SDWebImage,以便它你需要什麼?首先檢查文件是否緩存,然後可能顯示佔位符... – sergio 2013-02-22 22:40:16

+0

如何使用一個透明的PNG佔位符 - >不可見的佔位符。 – Till 2013-02-22 22:51:37

+0

@sergio:謝謝,做了你的建議。 – rufo 2013-02-26 20:50:03

回答

3

關注@ sergio的建議我修改了SDWebImage。對於任何有興趣有該項目的分支版本:https://github.com/josea/SDWebImage

用法是: [ImageView的setImageWithURL:URL placeholderImage:[UIImage的imageNamed:@ 「placeholder.png」] syncDiskLoad:YES];

我會向所有者提出拉取請求,以查看我的更改是否包含在主分支中。

更新:

你可以只是這樣做,以避免閃爍(這工作與項目的主分支):

[imageView setImageWithURL:url placeholderImage:imageView.image options:0 
progress:^(NSUInteger receivedSize, long long expectedSize) { 
     imageView.image = [UIImage imageNamed:@"QuestionMarkFace.png"]; 
} completed:nil];