Swiftはプロパティもオーバーライドできる
バージョン
- Swift 3.0.2
- Xcode 8.2.1
クラスのプロパティ
知らなかっただけなのですが、Swiftはプロパティもオーバーライドできます。
使い方次第で便利に使えそう。
サンプルコード
プロパティのオーバーライドとプロパティ監視を組み合わせて、ボタンが無効化されたらアルファ値を変えるコードです。
import UIKit class CustomButton: UIButton { override var isEnabled: Bool { didSet { super.isEnabled = isEnabled self.alpha = isEnabled ? 1.0 : 0.4 } } } let customButton: CustomButton = CustomButton() print(customButton.isEnabled) // true print(customButton.alpha) // 1.0 customButton.isEnabled = !customButton.isEnabled print(customButton.isEnabled) // false print(customButton.alpha) // 0.4