【Swift】URLからUIImageを作成する方法

レストランの検索アプリを作っている時に、画像のURLからUIImageを作成したいと思った。

こんな感じで、画像のURLがあればお店の画像を表示、なければ自分で作成した「No Image」を表示するようにしてみた。

「No Image」はPhoto Scape Xで自作してXcodeのAssetsに置いて利用する。

ImageViewのサイズが100 * 100の時には、画像のサイズも100 * 100にするとピッタリ収まる。

当たり前のことだけどちょっと嬉しかった。

UIImageはURL指定ができないので、以下の通りに拡張する。

extension UIImage {
    public convenience init(url: String) {
        let url = URL(string: url)
        do {
            let data = try Data(contentsOf: url!)
            self.init(data: data)!
            return
        } catch let err {
            print("Error : \(err.localizedDescription)")
        }
        self.init()
    }
}

URLの文字列が入っているか空であるかは以下のように判定。

if image.isEmpty {
	cell.imageview.image = UIImage(named: "noimage")
}else{
	cell.imageview.image = UIImage(url: image)
}

コーディング、楽しいね。

参考URL:https://www.rasukarusan.com/entry/2019/01/07/233207