如何取消/重置UIGestureRecognizer

我如何取消或重置UIGestureRecognizer ? 问题是,如果在手势过程中将waitForSomething设置为NO ,则下一个事件是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; } } 

谢谢你的帮助!

我知道了! 🙂

也许别人跑这个问题,这里是解决办法:

 if (waitForSomething) { recognizer.enabled = NO; recognizer.enabled = YES; return; } 

下一个事件将是UIGestureRecognizerStateFailed随后是UIGestureRecognizerStateBegan

Swift 4:

 if waitForSomething { recognizer.isEnabled = false recognizer.isEnabled = true return }