12

指が下がっているときと上にあるときをどのように知ることができUITapGestureRecognizerますか?ドキュメント
には 、私はタップとしてのみ処理する必要があると書かれているので、指が下がっているときにあることを意味しますが、私が得るのはです。 レコグナイザーの登録に使用するコードは次のとおりです。UIGestureRecognizerStateEndedUIGestureRecognizerStateBeginUIGestureRecognizerStateEnded

[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)]
4

2 に答える 2

19

UITapGestureRecognizerは個別のジェスチャ レコグナイザーであるため、開始済みまたは変更済みの状態に遷移することはありません。UIGestureRecognizer クラス リファレンスから:

個々のジェスチャは、ジェスチャが正常に解釈されたかどうかに応じて、Possible から Recognid (UIGestureRecognizerStateRecogniized) または Failed (UIGestureRecognizerStateFailed) に遷移します。ジェスチャ レコグナイザーが認識済みに移行すると、アクション メッセージがターゲットに送信されます。

(もちろんUIGestureRecognizerStateRecognized==であることを思い出してくださいUIGestureRecognizerStateEnded)。

ドキュメントによると、タップ ジェスチャ レコグナイザーの状態をチェックして、コードが認識されたことを示す前に、それが終了状態であることを確認する必要があります。彼らは、タップ ジェスチャが実際に開始または変更された状態に移行するとは言っていません (ただし、使用されている言語でドキュメントが少し誤解を招くことは認めますが!)。

タップ ジェスチャ レコグナイザーの指ダウン イベントを確認する場合は、単に を使用することをお勧めしtouchesBegan:withEvent:ます。

于 2011-12-06T01:48:57.677 に答える