2

iOS 5.1 プロジェクト (iPad) で SDWebImage 3 を使用します。

かなり大きな画像 (700x500) を表示しており、多数 (+1000) あります。画像をプリフェッチしてディスクにキャッシュし、ユーザーがそれらを閲覧できるようにします。

それは正常に動作します。ただし、画像をブラウズしているときに、プレースホルダーが表示される瞬間が常に表示され、非常に迷惑な効果が生じます。

私の使用例では、プレースホルダーを 0.5 秒未満 (基本的には点滅するだけ) 表示するよりも、ディスク キャッシュとプロセスを確認するために少し待つ方がはるかに望ましいでしょう。

私の問題はこれに似ています: How to get filesystem path to image cached with SDWebImage (iOS) . 注: 私の意見では、キャッシュのファイルシステム パスを精査しようとするアプローチは間違っています。私のユースケースも説明しているので、参照しているだけです。

私が望むのは、イメージがローカル ストレージにある場合にプレースホルダーを使用しないように SDWebImage に指示する方法です。それができない場合は、他のライブラリを探す必要があるかもしれません (アドバイスを歓迎します)。

注: RestKit (0.20) + AFNetworking も使用しています。

4

1 に答える 1

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];
于 2013-02-26T20:49:48.220 に答える