如何取消/重置UIGestureRecognizer

Man*_*nni 19 iphone objective-c uigesturerecognizer ios

我该如何取消或重置UIGestureRecognizer?问题是,如果我设置waitForSomethingNO手势时,下一个事件是UIGestureRecognizerStateChanged.但第一件事应该是UIGestureRecognizerStateBegan.

我的代码:

- (void) panned:(UIPanGestureRecognizer *) recognizer {
    if (waitForSomething) {
        // cancel or reset the recognizer!
        // because the next event should be UIGestureRecognizerStateBegan and not UIGestureRecognizerStateChanged
        return;
    }

    switch (recognizer.state) {
        case UIGestureRecognizerStateBegan:
            // important initialisation code
            break;

        case UIGestureRecognizerStateChanged:
            // do something
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

Man*_*nni 39

我知道了!:-)

也许其他人在这个问题上运行,这是解决方案:

if (waitForSomething) {
    recognizer.enabled = NO;
    recognizer.enabled = YES;
    return;
}
Run Code Online (Sandbox Code Playgroud)

接下来的事件将被UIGestureRecognizerStateFailed后面UIGestureRecognizerStateBegan.

  • 这是一个很好的提示,甚至是Apple在最近的WWDC视频中推荐的 (4认同)