そのため、1 本指の長押しジェスチャ認識エンジンを実装しましたが、認識エンジンは常に UIGestureRecognizerStateBegan 状態を欠いているようです...指を動かさずに長押しして離すと、StateEnded デバッグ メッセージが表示されます。長押しして指を少し動かして離すと、StateChanged および StateEnded デバッグ メッセージが表示されます。しかし、私は StateBegan を見たことがありません。
UIPanGestureRecognizer でこの問題が発生しないようにします。パンは、Began->Changed->Ended からすべての正しいジェスチャ状態を取得します。
- (void)handleLongPress:(UILongPressGestureRecognizer *)recognizer {
CGPoint location = [recognizer locationInView:self];
switch (recognizer.state) {
case UIGestureRecognizerStateBegan:
NSLog(@"!!!!handleLongPress: StateBegan !!!!!");
break;
case UIGestureRecognizerStateChanged:
NSLog(@"!!!!handleLongPress: StateChanged !!!!!");
break;
case UIGestureRecognizerStateEnded:
NSLog(@"!!!!handleLongPress: StateEnded !!!!!");
break;
default:
break;
}
}