如何取消/重置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 }