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

UIViewの画面をボタンのように振る舞わせるには? - デリゲートデザインパターンを使った連携

Icon comment count 0
Icon stock count 0

2 デリゲートデザインパターンを使った連携

これでButtonクラスは画面に矩形を表示し、画面タッチに対してボタンのような反応をするようになりました。あとはボタンを押された時に反応する処理が必要なのですが、この処理をButtonクラスにそのまま組み込んでしまっては拡張性がありません。Button側はボタンが押されたという連絡だけを別のオブジェクトに通知するようにし、そちらで任意の処理をおこなうようにしましょう。

↓ Buttonはタップされた事を通知するだけで、処理は相手に任せる

これには、ステップ02で学習したデリゲートデザインパターンが利用できます。

2.1 移譲用プロトコルおよび移譲先プロパティの準備

例えば-touchedというメソッドを持つプロトコル(ButtonDelegateと命名)を定義し、これを採用したオブジェクトをプロパティ(delegateと命名)に受け取れるようにしておき、タッチされた時は、このdelegateに-didTouchメッセージを送るようにしてみてはどうでしょうか?

↓ Button.swift サンプル:08/DelegateButton-04
↓Buttonとのデリゲートデザインパターンをおこなうために定義したプロトコル
protocol ButtonDelegate : class {
    ↓ボタンがタップされた
    func didTouch()
}
class Button : UIView

出典情報

Medium

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

  • 著者: 國居 貴浩

コメント

    コメントはありません