Nukeで画像を読み込みたいっ!
【背景】
題名からもある通り、Nukeは画像を読み込んで表示するライブラリなのですが、ネットを漁って使い方を調べると、
Module 'Nuke' has no member named 'loadImage'
(NukeにはloadImageメソッドが存在しないよ)
と言われる。
同僚に「なんで?」と聞いたら、「アプデで消えた」という返事をもらった。
調べても出てきやがらないので、とりあえず画像を表示したいという方の為に、必要最低限の書き方だけは共有します。(私のNuke歴が10分なので、、)
【環境】
Nuke: ver.12.0(ここ大事)
画像入力の方法
loadImage(
with: 〇〇, //画像のURLの文字列 or URL型のurl
into: ×× // どこへ代入するか
)
これで画像の表示ができました。
実際に動いたコードは、
import Nuke
import NukeExtensions
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let url =
URL(string: "https://webusstatic.yo-star.com/bluearchive_jp_web/fankit/162687961120015004/01.jpg")
// ↑このままでもいいし、好きなURLに変更してもOK
loadImage(
with: url,
into: imageView
)
}
@IBOutlet var imageView: UIImageView! //ご自身のImageViewとOutlet接続してね
}
//以下コピー不要
//https://bluearchive.jp/fankit/Precautions
【念の為】
Nukeは外部から読み込まないと使えないので、
SwiftPMとかで導入しないとダメですよ。
「import Nuke
で読み込んどるやんけ」って言ってもダメですからね!
「何言うてるか分からん」って人は、外部ライブラリを導入している記事があるので、参考にしてください。
{私がやっていたやり方(エラーの出し方)という目次です}
た だ し、こちらで紹介しているのはNukeではなく、"SwiftLint"という今回の記事とは無関係のものなので、「なんか"SwiftLint"って書いているなぁ」と思った所は大抵
SwiftLint → Nuke
と読み換えが必要なところです。適宜変更しましょう。
紹介記事内で「URLで検索する」場面があると思うので、その時は
https://github.com/kean/Nuke
こっちのURLで検索すること。
でなければNukeではなくSwiftLintがインストールされるので。
ここまで行けば、Add Packageを押してNuke導入完了です。
そして、ちゃんとOutlet接続が出来ているとURL先の画像が表示されます。
注意
上記の通り、
loadImage(with: 〇〇, into: ××)
で画像を表示できることを確認していますが、
これとは別で
NukeExtensions.loadImage(with: 〇〇, into: ××)
でも画像表示ができることを確認しております。
「何が違うのか」「どちらの方が良いのか」などの事は分かっていないので、
英語の公式ドキュメントが読める方は読んでみると良いかもですね。
そしてそれをコメントして頂けるとありがたいですね(強欲)。
参考資料
- NukeDemo (NukeのGitHubで紹介されていたやつ)
- Qiita@自分の記事(Nuke導入用)