uiswipegestureの後に指が上がるときを検出します[承認者
-
26-09-2019 - |
質問
セットアップしました 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.state
の UIGestureRecognizerStateEnded
. 。例:
- (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.
}
}
所属していません StackOverflow