9

私はウェブからたくさんの画像を取得しますが、それらはすべての種類のサイズであり、大きくても小さくてもかまいません..

したがって、セルに表示するときにサイズを変更できますが、これは非効率的です。大きな画像をディスクに保存してセルごとにサイズを変更するのではなく、SDWebImage がそれらをダウンロードしてサイズを変更した後にサイズを変更する方が良い方法です。

では、SDWebImage でこれを行うにはどうすればよいでしょうか。または、クラスを少しハックする必要がありますか?

4

4 に答える 4

25

SDWebImage の開発者 Olivier Poitrey がこの質問に答えてくれましたここ.

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

SDWebImageManager.sharedManager.delegate = self;

using the imageManager:transformDownloadedImage:withURL: instance method.

詳しくは。

私にとって完璧に機能しました。

于 2013-03-13T18:25:01.803 に答える
4

私はあなたと同じ問題を抱えていて、最初にSDWebImageを微調整しようとしましたが、問題を解決する独自のコンポーネントを構築することになりました。ここでそれを見ることができます:https ://github.com/adig/RemoteImageView

于 2012-10-17T07:21:34.780 に答える
0

SDWebImage 3.8.2

UIImageView カテゴリを使用している場合sd_setImageWithURL。別の UIImageView カテゴリ (拡張機能) を作成しました

func modifiedImageFromUrl(url: NSURL?) {
    self.sd_setImageWithURL(url) { (image, error, cacheType, url) in
        if cacheType == SDImageCacheType.None && image != nil {
            dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0)) {
                let modifiedImage = // modify image as you want

                dispatch_async(dispatch_get_main_queue()) {
                    SDWebImageManager.sharedManager().saveImageToCache(modifiedImage, forURL: url)

                    self.image = modifiedImage
                }
            }
        }
    }
}
于 2016-10-17T15:27:39.403 に答える