Kingfisher でエラー画像表示
URL を渡して画像を取得するのに Kingfisher を利用してて大変便利なのだが、取得エラーになった際のやり方がわかりにくかったのでメモ。
やり方
extension Kingfisher where Base: ImageView {
func setImageWithError(url: URL) {
setImage(with: url,
completionHandler: { (_, error, _, _) in
if let _ = error {
self.base.image = #imageLiteral(resourceName: "error")
}
}
)
}
}
completionHandler
で error があれば self.base.image
にエラー画像を渡してあげると良い。
setImage
の引数に errorImage
とかないかな〜と思ったけどなかった。
上記は Extension にしてて、 imageView.kf.setImageWithError(url)
で叩けるようにしてある。