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

既存の画面アイテムを組み合わせて新しい画面アイテムを作るには? - ExtendablePalletViewクラスの課題

Icon comment count 0
Icon stock count 0

3 ExtendablePalletViewクラスの課題

今回用意したExtendablePalletViewクラスは、PalletやUITapGestureRecognizerを公開した事によって、すぐに他のアプリでも利用できるようになっています。

ただ、このようにPalletやUITapGestureRecognizerをそのまま公開してしまうのは、それだけ自らに制限をかける事でもあります。

3.1 ふたたび公開か非公開か

自分の持つオブジェクトを公開するか、非公開にするかの判断は、ExtendablePalletViewクラスをどのように発展させていく予定なのかによって変わります。

UITapGestureRecognizerを公開せず、ExtendablePalletViewが提供するメソッドでターゲットアクションを設定してもらうようにしておけば、後々UITapGestureRecognizerの使用をやめて、ExtendablePalletView自身が-touchesBegan:withEvent:や-touchesMoved:withEvent:メソッドをオーバーライドし、タッチされた位置に反応して処理するようにした場合でも、使う側は影響を受けずに済むからです。

具体例としてExtendablePalletViewにUIApplicationの-sendAction:to:from:forEvent:を使って、UITapGestureRecognizerを隠蔽する例をここに示しておきます。

↓ ExtendablePalletView.swift サンプル:17/ExtendablePalletView-03-alt
class ExtendablePalletView: UIView {    ・・・
    private let tapGestureReco

出典情報

Medium

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

  • 著者: 國居 貴浩

コメント

    コメントはありません