なぜGlobal変数
scrollViewに配置するそれぞれのViewをカスタムクラスとして保持していたため、それぞれのクラス間での変数の値を統一したいから。その際の注意点として、scrollViewにLabelなどを配置し、非同期処理によって文字列をaddする場合などにLabelの高さをそれぞれのクラスで更新することが必要。
どう使う
これを
Global.swift
var labelHeight: CGFloat = 0
class ViewController: UIViewController {
var label: UILabel!
var profileLabelHeight: CGFloat = labelHeight
override func viewDidLoad() {
super.viewDidLoad()
setup()
}
func setup() {
//global変数が更新された時に値が変わらない
label = UILabel()
label.frame.size.height = profileLabelHeight
}
}
こう
Global.swift
var labelHeight: CGFloat = 0
class ViewController: UIViewController {
var label: UILabel!
var profileLabelHeight: CGFloat {
//呼ばれるとprofileLabelHeightを更新する
return labelHeight
}
override func viewDidLoad() {
super.viewDidLoad()
setup()
}
func setup() {
label = UILabel()
label.frame.size.height = profileLabelHeight
}
}
終わり