2017-07-11 11 views
0

私はジェスチャー認識の周りにアプリを構築しています。 タップ、スワイプ(複数の指でさえ)、ピンチを認識してコードを作成しました。UILongPressGestureRecognizerを使わずにすぐに長押しを認識

私はUILongPressGestureRecognizerを使わずに長押しのジェスチャーを認識したいのですが、私が試した後に他のジェスチャーを認識して矛盾しているためです。

私が現在やっていることは、touchesBeganで時間を取得することです。touchesMovedでは時間差を計算し、400msより大きい場合(exempleの場合)は関数を呼び出します。 この関数は、指が少し動いたときだけ呼び出され、完全に静的なときは呼び出されないということです。

もう一つの選択肢は、touchesBeganにある種の遅延を設定し、400ms後に指がまだ画面に残っていることを確認してから、関数を呼び出すことです。

ジェスチャー認識の残りの部分をブロックせずにどうすればいいですか? この長年のプレスの目的は、光の強度の変化やそれに類するもの(0〜1秒、光が最大に達するまで増加し、その後最小になるなど)を変えることです。

次に、(1本の指で)回転ジェスチャを認識しようとします。これについても回答があれば完璧です。

ありがとうございます!

答えて

1

遅延を設定しないでください。 400分後に起動するtimerを起動します。 touchesEndedでは、が400ms前に呼び出された場合に無効にします。 timerが起動したら、目的の関数を呼び出します。

メソッドのpointsの軌跡を計算する必要があります。何らかの形で動きが回転に似ている場合(そのためには何らかの閾値が必要です)、適切な関数を呼び出します。

+0

ありがとう、それはトリックをしたように見えます。タイマーを知らなかった。まだ回転のジェスチャーを開始していない。私は後で私は推測する:)あなたの答えをありがとうが表示されます。 – Hawkydoky

関連する問題