3

だから何よりも先に、私はこれを見つけました:

SDWebImage キャッシュ前に画像を処理する

どのような助けになりますが、本当に使いたいSDWebImageのですが、完了する前にクラス外のメソッドを介して画像を処理する方法はありますか?

私の理解では、完了ブロック

- (void)setImageWithURL:(NSURL *)url completed:(SDWebImageCompletedBlock)completedBlock

画像が配置された後に実行されます。ロードした画像を配置する前にメソッドを実行したいと思います。

これを行う簡単な方法はありますか?

ありがとうございました、

4

2 に答える 2

2

私の答えを再投稿する:キャッシュする前にSDWebImageプロセス画像

SDWebImageの開発者であるOlivierPoitreyが、この質問に答えてくれました。

SDWebImageManagerDelegateプロトコルを実装してから、次のように共有マネージャーのデリゲートとして設定する必要があります。

SDWebImageManager.sharedManager.delegate = self;

imageManager:transformDownloadedImage:withURL:インスタンスメソッドを使用します。詳しくは。

私のために完璧に働いた。

于 2013-03-18T05:07:30.720 に答える
0

2 つのオプション:

  1. Use Asynchronous Image Caching Independentlyを使用する独自のルーチンを記述し、画像を処理してから、画像ビューのimageプロパティを設定します。心配しなければならない興味深い順列があります (たとえば、ダウンロードが完了する前にセルが再利用された場合、その画像ビューの以前の画像ダウンロードをキャンセルしたい場合など)、注意が必要ですが、そうではありません。残念な。

  2. ただし、 ( )UIImageViewの既存のカテゴリに似た独自のカテゴリを作成する方がおそらく簡単ですが、元のカテゴリと同じように独自の順列を導入し、前処理完了ブロックも提供します。SDWebImageUIImageView+WebCache.msetImageWithURL

私はおそらく後者に傾倒しますが、どちらも完全にうまく機能します

于 2013-03-13T12:24:18.077 に答える