2012-02-08 5 views
2

私は、タップと長押しの2つの機能を持つUIButtonを持っています。 Springboardアプリ(ホーム画面)のようなビット。私はそれをUILongPressGestureRecognizerを付けたUIButtonとして実装しました。添付されたUIGestureRecognizersを無効にしないでUIButtonを無効にすることはできますか?

場合によっては、私のボタンでenabled = NOを設定して、タップ動作を無効にする必要があります。しかし残念ながら、これも私のジェスチャー認識者を無効にしました。

ジェスチャー認識機能を有効にしたままでUIButtonの標準動作を無効にするにはどうすればよいですか?

答えて

1

UIButtonはUicontrolののサブクラスです。 UIControlのさまざまな方法を見てください。
ControlEventを呼び出す特定のメソッド(ControlEventTouchUpInside a.k.aタップなど)とUIEventsを指定できます。

- (void)sendAction:(SEL)action to:(id)target forEvent:(UIEvent *)event 

- (void)sendActionsForControlEvents:(UIControlEvents)controlEvents 

あなたはとコントロールイベントのアクションを削除することができますと呼ばれているターゲット/セレクタメソッド内

- (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents 

それとも、あなたの条件に応じて、あなただけの無操作することができます。

1

ボタンのタップターゲットとセレクタを修正し、必要に応じて再度追加することができます。 enabled = NO;を設定すると、UIControlの受信者をNOに設定します。

詳細ドキュメント

UIButton - Enabled
関連する問題