Мне не хватает некоторых базовых представлений.
Сегодня я хотел создать подкласс некоторого UIView, и я посмотрел на определение UIButton, но я не могу понять, как оно работает.
ВОпределение UIButton - это такие свойства, как:
open var adjustsImageWhenHighlighted: Bool
open var adjustsImageWhenDisabled: Bool
Когда используется UIButton, не имеет значения, когда устанавливаются значения UIButton, он всегда настраивается правильно, как и в tableView или любых других классах UIKit.
Я сделал пример:
class customView: UIView {
var shouldSetupConstraints = true
var addAdditionalSpacing = true
var elements: [String]? {
didSet{
if addAdditionalSpacing == false {
doSomething()
}
}
}
func doSomething() {
}
override init(frame: CGRect) {
super.init(frame: frame)
setUpLayout()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func updateConstraints() {
if(shouldSetupConstraints) {
// AutoLayout constraints
shouldSetupConstraints = false
}
super.updateConstraints()
}
func setUpLayout() {
}
}
Использование CustomView:
lazy var customV: CustomView = {
let v = CustomView()
v.addAdditionalSpacing = true
v.elements = ["One","Two"]
return v
}()
lazy var customV2: CustomView = {
let v = CustomView()
v.elements = ["One","Two"]
v.addAdditionalSpacing = true
return v
}()
Так что, если я использую CustomView, то имеет значение, в каком порядке я его настроил, я понимаюпочему, но я не понимаю, каким образом я должен проектировать свои классы, чтобы я мог устанавливать значения в любое время, кроме как с другими конфигурациями didSet.Почему свойства в UIButton не имеют никаких установщиков, как значения устанавливаются в этом случае?
Любые ссылки на документацию также приветствуются.