iOS uiswipegesturerecognizerオフセットを計算します
-
27-10-2019 - |
質問
アプリケーションにスワイプジェスチャー認識者を追加しています
- (void)createGestureRecognizers
{
//adding swipe up gesture
UISwipeGestureRecognizer *swipeUpGesture= [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeUpGesture:)];
[swipeUpGesture setDirection:UISwipeGestureRecognizerDirectionUp];
[self.view addGestureRecognizer:swipeUpGesture];
[swipeUpGesture release];
}
スワイプイベントを処理する方法:
-(IBAction)handleSwipeUpGesture:(UISwipeGestureRecognizer *)sender
{
NSLog(@"handleSwipeUpGesture: called");
}
ここでオフセットを計算するにはどうすればよいですか?ビューを動かすには?
解決
uiswipegesturerecognizer用のuigesturerecognizerアブストラクトスーパークラスには、foolowingメソッドがあります
- (CGPoint)locationInView:(UIView *)view
- (CGPoint)locationOfTouch:(NSUInteger)touchIndex inView:(UIView *)view
これにより、ビュー内のジェスチャーの位置を知ることができますが、これは個別のジェスチャー認識者です(これは、特定の「翻訳」または「オフセット」と呼びたいもので発射しますが、制御できません)。あなたは継続的な制御を探しているようですね。 uipangesturerecognizer 次の方法があります(これはあなたのために翻訳計算を行います)
- (CGPoint)translationInView:(UIView *)view
- (void)setTranslation:(CGPoint)translation inView:(UIView *)view
- (CGPoint)velocityInView:(UIView *)view
その後、ジェスチャーが継続的に展開されている間に、クイックファイアコールバックを取得します。
他のヒント
uiswipegesterurerecognizerは、個別のスワイプジェスチャーを検出するためのものです - スワイプが完了した直後にアクションを発射します - したがって、指が移動するオフセットまたは距離について尋ねる場合、おそらくUigesturerCognizerのサブクラスを作成するか、使用することを検討したいと思うでしょう。継続的なジェスチャー情報を取得するためのuipangesturerecognizer。あなたが何をしようとしているのか正確にはわかりませんが、uiscrollviewも整っているかもしれません...
をチェックしてください ジェスチャー認識者用のAppleドキュメント.
所属していません StackOverflow