SDWebImageの基本的な使い方

Tomoumi Nishimura 4,384views 更新:2015年4月15日

チートシート的なもの

let imageURL = NSURL(string: "http://www.aimluck.com/img/top/img_01.png")
let sampleImage = UIImage(named:"loading.png")
// UIImageViewに画像をロード
photoImageView.sd_setImageWithURL(imageURL)

// ロード中は一時的な画像を表示したい
photoImageView.sd_setImageWithURL(imageURL, placeholderImage: sampleImage)

// 画像をあらかじめキャッシュしておきたい
SDWebImageManager.sharedManager().downloadImageWithURL(url, options: nil
  , progress: { (a: Int, b:Int) -> Void in
  }, completed: { (image: UIImage!, b: NSError!, c: SDImageCacheType, d: Bool, e:NSURL!) -> Void in
  // ダウンロード・キャッシュ後の処理
  // imageにダウンロードした画像データが入ってる
  })

// ダウンロードするだけ
SDWebImageDownloader.sharedDownloader().downloadImageWithURL(url, options: nil
  , progress: { (a: Int, b:Int) -> Void in
  }, completed: { (a: UIImage!, b: NSError!, c: SDImageCacheType, d: Bool, e:NSURL!) -> Void in
  // ダウンロード後の処理
  // imageにダウンロードした画像データが入ってる
  })

// 画像をキャッシュに登録する
// ローカルな画像をキャッシュに登録する場合の他に、ダウンロード処理だけは別のライブラリ(ex. OAuth2ClientやAlamofireなど)で実行し、得られたNSDataなどをUIImageに変換してキャッシュに登録するなどの利用方法が考えられる
SDWebImageManager.sharedManager().imageCache.storeImage(sampleImage, forKey: "sample")
// forKeyにURLを指定すればdownload後のキャッシュと同じように扱える・・・はず

// キャッシュした画像を引っ張りだす
cache.queryDiskCacheForKey("sampleImage"
  , done: { (image: UIImage!, type: SDImageCacheType) -> Void in
  // 読みだした後の処理
  // imageに読みだした画像データが入っている
  })

参考

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません