0

私は、openGL を使用する iPhone 用の小さなアプリで作業しています。

アプリは次のことを想定しています。

動くタッチで画面を移動します。タップで拡大・縮小

この関数を上書きして、タッチの座標を処理し、指で画面内を移動します。成功し、完全に機能します。

  • (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)イベント
  • (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)イベント
  • (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)イベント

私はUIGesture認識機能を使用して、ダブルタップ、ピンチジェスチャー、スワイプ、カウンターピンチも成功しており、すべてのジェスチャーが完全に検出されています。

しかし、私は対立しています。たとえば、ダブルタップすると正しく認識されることがありますが、それは touchedMoved 関数にも渡され、不規則な動きになります。ピンチとカウンターピンチのジェスチャでも同じことが起こります。ほとんどの場合、ズームインとズームアウトでうまく機能しますが、私の touchesMoved 関数もタッチを検出して画面を移動することがあります。

この関数を上書きし、同時に UIGesturerecognizer を使用するのは悪い習慣です?. そうでない場合、競合することなく両方を使用する方法はありますか?

レコグナイザーで setDelaysTouchesBegan と setDelaysTouchesEnded を Yes に設定しようとしましたが、上書きされた関数のどれにもタッチが渡されません!

UIGestureRecognizer を使用してスワイプを処理し、上書きされた関数を破棄してタッチを受け取り、スワイプの値を使用して画面をどれだけ移動するかを計算することを考えていましたが、可能ですか?

4

1 に答える 1

1

なぜ誤った touchesMoved: イベントを受け取ることがあるのか​​についてはお答えできませんが、上書きされた関数を捨てて、 a を使用しUIPanGestureRecognizerて画面上の移動を処理したい場合があるように思えます。

于 2010-10-29T14:58:19.627 に答える