0

私はTouchesデリゲートを処理しておりUITapGestureRecognizer、シングルタップ用です。以下に方法を示します。ビューを 1 回タップするとTouchesBeganSingleTap、 、の順に 3 つのイベントが表示されTouchesEndedます。検出TouchesEndedしたときにイベントを停止する方法はありますか? 基本的に、発生しなかった場合はSingleTapタスクを実行したくありません。私は failTouchEnded BOOL 変数を使用してこれを行い、TouchesEnded でそれをチェックしましたが、それが良い考えかどうかはわかりません!TouchesEndedTouchesMovedSingleTap

   - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    }

    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
          failTouchEnded = NO;
    }

    - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
          if(failTouchEnded) return;

    }

    - (void)GestureView:(GestureView*)view handleSignleTap:(UITapGestureRecognizer*)recognizer {
          failTouchEnded = YES;
    }
4

1 に答える 1

0

GestureRecognizer には、cancelsTouchesInView プロパティがあります。YES (デフォルト) の場合、ジェスチャ レコグナイザーがジェスチャを認識すると、タッチがキャンセルされます。したがって、タッチが終了したのではなく、タッチがキャンセルされます。YES でない場合は、delaysTouchesEnded も YES に設定する必要があります。

于 2013-01-07T17:15:08.670 に答える