2011-08-24 12 views
28

私はビューを持っています。私はそれのための種類のタップジェスチャーを定義したいと思う。iphone - シングルタップジェスチャーが二重と競合する

したがって、ユーザーがビューをタップすると、ビューはAを行います。ユーザーがビューをダブルクリックすると、Aを実行せずにBが実行されます。

ビューに2つのUITapGestureRecognizerを追加しました。タップはnumberOfTapsRequired = 1です。ダブルタップはnumberOfTapsRequired = 2です。

はまた、私は

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { 
    return NO; 
} 

ためにNOを返す設定しかし、私は彼らが互いに競合ことがわかりました。つまり、ビューをダブルタップしても、AとBの両方が呼び出されます。

どうすればこの問題を解決できますか?

ありがとうございました

答えて

64

次のコード行を追加することで対処できます。

[singleTapRecognizer requireGestureRecognizerToFail:doubleTapRecognizer]; 
+0

マラー、感謝を:シングルタップ認識が唯一のダブルタップ認識が失敗したときに起動することをこれが確認します。それは –

+3

を動作させるが、これはシングルタップを検出するための遅延を与える!! : – Mrug

+4

@Mrug:真実ですが、1回だけでダブルタップではないことを100%確実にする唯一の方法は、ユーザーが2度目のタップをしていないことを確認するまで待つことです。 –

関連する問題