Objective c UILongPressGestureRecognitizer缺少UIGestureRecognitizer状态开始状态!

Objective c UILongPressGestureRecognitizer缺少UIGestureRecognitizer状态开始状态!,objective-c,cocoa-touch,ipad,uigesturerecognizer,Objective C,Cocoa Touch,Ipad,Uigesturerecognizer,因此,我实现了一个单指长按手势识别器,但该识别器似乎总是缺少UIGestureRecognizerStateStarted状态。。。 如果长按w/o moving finger并抬起,则会收到StateEnded调试消息。 如果我长按并移动手指一点,然后抬起,就会得到StateChanged和StateEnded调试消息。 但我从来没有看到过 UIPanGestureRecognizer没有此问题-Pan从开始->更改->结束获取所有正确的手势状态 - (void)handleLongPress

因此,我实现了一个单指长按手势识别器,但该识别器似乎总是缺少UIGestureRecognizerStateStarted状态。。。 如果长按w/o moving finger并抬起,则会收到StateEnded调试消息。 如果我长按并移动手指一点,然后抬起,就会得到StateChanged和StateEnded调试消息。 但我从来没有看到过

UIPanGestureRecognizer没有此问题-Pan从开始->更改->结束获取所有正确的手势状态

- (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;
    }   
}

我遇到了一个类似的问题,这是由UILongPressGestureRecognitor设置引起的:我使用的原始示例代码指定了numberOfTapsRequired=1,我必须快速点击并释放,然后长时间点击使其工作,而不是仅仅点击并保持几秒钟。当我删除numberOfTapsRequired时,代码现在的行为与我预期的一样。希望这有帮助=)

您的代码对我来说似乎运行良好。您是否在您的点击和平移手势识别器之间设置了任何类型的依赖关系,或者您在该视图上还有任何其他识别器?我的任何手势识别器之间都没有依赖关系。是的,我在这个视图上有几个识别器。我被难住了…:(哈,我真傻!我刚看到原来的问题是一年多前提出的,但无论如何,希望我的回答能帮助其他人;-)