5

UIViewTouchesMovedに依存するイベントを追加しました:タッチをドラッグするイベント。同じビューコントローラ内にすでに存在する長押し、タップ、回転、およびピンチジェスチャレコグナイザがあります。touchesBegan:ビューがイベントを受信するという問題が発生していますtouchesEnded:が、タッチが移動していません。

touchesMovedが呼び出されないという私の問題は、ジェスチャ認識機能がビュー内のタッチをキャンセルしたことが原因ですか?スクロールビューも含まれていました。それが原因でしょうか?

「タッチアンドムーブ」機能を実装するための最も近いジェスチャであるtouchesMovedを使用できない場合。ジェスチャレコグナイザーをタップまたはパンしますか?

ご協力ありがとうございました!

4

2 に答える 2

14

ジェスチャは、デフォルトで、アクティブなときにリンクされているオブジェクトのタッチをキャンセルします。cancelsTouchesInViewプロパティをに設定することで、この動作を停止できますNO

于 2012-04-26T02:51:41.413 に答える
2

生のタッチ処理とジェスチャレコグナイザーを混在させると、奇妙な動作が発生する可能性があります。少なくとも、しっかりと機能させることができず、やや不安定でした。状況によっては、ドラッグを処理するために、ビューにドラッグジェスチャレコグナイザー(UIPanGestureRecognizer)を追加したい場合があります。

UIGestureRecognizerDelegateのgestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:を調べることで、どのジェスチャーレコグナイザーがどの状況で起動するかを制御できます。

于 2012-04-26T03:59:42.480 に答える