10

テーブル ビューで画像を表示するときはいつでも、 SDWebImage画像ダウンロード/キャッシュ ライブラリを使用します。

私は通常、そのように実装します(テーブルビューcellForRowAtIndexPathメソッドで)。

[cell.imageView setImageWithURL:
[NSURL URLWithString:@"http://asite.com/animage.jpg"] 
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];        

そして、キャッシュされたバージョンがある場合はそれをロードします。

SDWebImage のシンプルさ (プレースホルダー / 堅牢なダウンロード コードを使用) を使用したいが、キャッシュを 1 か所だけにしない場合はどうでしょうか。

SDWebImage 全体でキャッシュを無効にする方法は知っていますがsetImageWithUrl: placeholderImage:、SDWebImage がキャッシュを使用していないことを確認する方法がわかりません。

私がこれをしたい理由は、テーブルビューでウェブカメラを表示するためにそれを使用しているためです (明らかに、これは毎回更新する必要があります)。

4

5 に答える 5

7

UIImageView のカテゴリから離れて、独自のバージョンの SDWebImageManager を作成することをお勧めします。クラス SDImageCache を自分で使用すると、より細かく制御できます。

SDWebImageManager 自体からの Heres と例:

[[SDImageCache sharedImageCache] storeImage:image
                                  imageData:downloader.imageData
                                     forKey:[downloader.url absoluteString]
                                     toDisk:NO];

toDisk はおそらく BOOL を NO に変更した場所です。デフォルトのマネージャーはディスク キャッシュを使用します。ストリーミング イメージをサポートするために、頻繁にメモリをクリアすることもできます。

[[SDImageCache sharedImageCache] clearMemory];

SDWebImageManager のコードは簡単に理解できます。必要に応じていくつかの重要な部分だけを書き直すだけで、ほとんどのコードを作り直す必要はないと思います。

于 2012-02-15T09:55:53.687 に答える
2
  1. スウィフト 4.2
  2. クロスコード: 10.0
  3. SDWebImage: ~>4.0

SDImageCache.shared().config.shouldCacheImagesInMemory = false

于 2019-02-14T23:13:49.050 に答える