質問

セットアップしました UISwipeGestureRecognizer:

UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:delegate action:@selector(handleSwipeGesture:)];
swipe.direction = UISwipeGestureRecognizerDirectionUp;
[self addGestureRecognizer:swipe];
[swipe release];

スワイプにより、プレーヤーはスワイプの方向に移動します。ただし、スワイプを作った指が画面から持ち上げられるまで、プレイヤーに動き続ける必要があります。 Touchesended:Methodを使用しようとしましたが、最初にスイッチングしないタッチを作成する必要があります。スワイプジェスチャーを作ったタッチを取得するにはどうすればよいですか?そのタッチが画面から持ち上げられたときにどのように検出できますか?

役に立ちましたか?

解決 2

Appleのドキュメントを調べた後、私はこのuigesturerecognizerのこの特性を見つけました。

@property(nonatomic) BOOL cancelsTouchesInView

に設定します NO 受信者のビューは、ジェスチャー認識が受信するマルチタッチシーケンスの一部であるすべてのタッチを処理します。

他のヒント

私はあなたがこの質問に対する答えにすでに満足していることを知っていますが、スワイプジェスチャーの代わりにuipangesturerecognizerを使用することをお勧めしたと思いました。

パンジェスチャー認識者を使用すると、ユーザーが指のドラッグを停止するまでメッセージが繰り返しセレクターに送信されます。その時点でセレクターはもう1回呼び出され、 gesture.stateUIGestureRecognizerStateEnded. 。例:

- (void)panGesture:(UIPanGestureRecognizer *)gesture {
    if (gesture.state == UIGestureRecognizerStateEnded) {
        CGPoint translation = [gesture translationInView:self.view];
        //This contains the total translation of the touch from when it 
        //first recognized the gesture until now.
        //
        //e.g (5, -100) would mean the touch dragged to the right 5 points, 
        //and up 100 points.
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top