iphone - 如何取消/重置 UIGestureRecognizer

标签 iphone objective-c ios 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

关于iphone - 如何取消/重置 UIGestureRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6593772/

相关文章:

android - 需要下载/安装 wifi 之前的最大移动应用程序大小

ios - 如何使本地运行的 PyCharm 服务器可供同一网络上的 iPhone 使用

ios - 同一个 UIViewController 中的两个 UITableView

iOS - 下载大数据集,检测属性值的实体(NSManagedObject)是否已经存在

ios - AF网络 : Image is not uploading pre iOS 8

objective-c - 如何以编程方式在 iPad 上显示导航 Controller 的下拉列表?

ios - 如何在 NSMutableRequest 中添加请求参数

iphone - 我怎么能创建一个类似于这个的自定义标签栏

iphone - Cocos2d 2.x、1.x 和 ARC

ios - 无法更改 XIB 中的 View 大小?