はじめに
最近はコードでUIを作るのにハマっています。その中で、Lazyが必要な場面が出てきたので備忘録的にまとめておきます。
どんなときに使えるの?
結論、一つの用法として、コードでUIを作っていくときなどに使えることがあります。
例えば、UIButtonであれば以下のコードのように書けます。
このコードは”Lazy”を付けなくても問題なくUIButtonを生成することができます。
let button: UIButton = {
let button = UIButton()
button.setTitle("tap", for: .normal)
button.backgroundColor = .blue
return button
}()
では、いつ"Lazy"が必要になるのか、それはCollectionViewやTableViewでdelegate、dataSourceをselfに設定するときです。
"Lazy"をつけることで、delegateやdataSourceにselfを設定することができるようになります。
"Lazy"をつけないと怒られます。
この他にも、"Lazy"をつけることで自身のプロパティやメソッドにもアクセスすることが可能になります。
lazy var infoCollectionView: UICollectionView = {
let layout = UICollectionViewFlowLayout()
let cv = UICollectionView(frame: .zero, collectionViewLayout: layout)
cv.delegate = self
cv.dataSource = self
cv.backgroundColor = .brown
return cv
}()
もう少し掘り下げて"Lazy"について知りたい方は以下の記事が参考になると思います。
https://qiita.com/reo0612/items/c2421bca65d5723b1055
おわりに
最近夜に犬の散歩をするのにハマっています。おわり。