親切すぎるiPhoneアプリ開発の本

より汎用性の高い連携方法は? - プロパティのオーバーライド

Icon comment count 0
Icon stock count 0

2 プロパティのオーバーライド

UIControlに細かなターゲット/アクション用のイベントが定義されているので、やろうと思えばViewController側で、色パッチに触れられた時に透明度を変化させることも可能です。ですが、ここはやはりButton側で対応するのがいいでしょう。

2.1 ハイライトの調整

ですが、UIViewの派生でおこなったような、タッチイベント対応メソッドのオーバーライドは基本的に不要です。UIControlはタッチ状態を追跡中に内外判定に合わせて、自身のhighlightedプロパティを調整するようになっているので、このプロパティをオーバーライドするだけです。次のサンプルからわかるように、プロパティもオーバーライドが可能です。

↓ UIControlは内外判定に合わせて、自身のhighlightedプロパティを調整する
↓ Button.swift サンプル:09/DelegateButton-10
class Button : UIControl {
    override var highlighted:Bool {
        set {
            super.highlighted = newValue
            self.alpha = newValue ? 0.5 : 1.0
        }
        get {
            return super.highlighted
        }
    }
}

出典情報

Medium

親切すぎるiPhoneアプリ開発の本

  • 著者: 國居 貴浩

コメント

    コメントはありません