UISwipeGestureRecognizer からジェスチャの開始点を取得することは可能ですか。それがどのように可能であるかのように
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch * touch = [touches anyObject];
gestureStartPoint = [touch locationInView:self];
}
UISwipeGestureRecognizer からジェスチャの開始点を取得することは可能ですか。それがどのように可能であるかのように
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch * touch = [touches anyObject];
gestureStartPoint = [touch locationInView:self];
}
UISwipeGestureRecognizer のドキュメントによると、次のことができます。
UIGestureRecognizer メソッドの locationInView: および locationOfTouch:inView: を呼び出すことで、スワイプが開始された場所を特定できます。前者の方法では、ジェスチャに複数のタッチが含まれている場合に重心が得られます。後者は、特定のタッチの位置を示します。
PS: 最初にドキュメントを確認する必要があります。答えは UISwipeGestureRecognizer のクラス リファレンスにあり、見つけるのは難しくありません。開発者であることの一部は、物事を調べることができることです。Apple には優れたドキュメントがあります。それを使用してください!
警告
エイミーの答えは完全に間違っています!Recognizer は生成する場合がありますUIGestureRecognizerStateBegan
が、スワイプではイベントのみをUISwipeGestureRecognizer
生成します。UIGestureRecognizerStateEnded
しかし、touchesBegan:
代わりに動作します。問題は、ユーザーの操作をサポートしている場合、現在のビューでのみ機能し、親ビューに渡す必要があることです。
はい、可能です。以下のコードを参照してください。
if ([recognizer state] == UIGestureRecognizerStateBegan || [recognizer state] != UIGestureRecognizerStateChanged) {
NSLog(@"StateBegan :::::");
}