像其他提到的一样,您可以使用它willSet
来检测更改。但是,在替代中,您不需要将值分配给super,而只是观察现有的更改。
您可以从以下游乐场观察到几件事:
import UIKit
class MyButton : UIButton {
override var isSelected: Bool {
willSet {
print("changing from \(isSelected) to \(newValue)")
}
didSet {
print("changed from \(oldValue) to \(isSelected)")
}
}
}
let button = MyButton()
button.state == .normal
button.isSelected = true // Both events fire on change.
button.state == .selected
button.isSelected = true // Both events still fire.