如何取消/重置UIGestureRecognizer [英] How to cancel/reset an UIGestureRecognizer

查看:135
本文介绍了如何取消/重置UIGestureRecognizer的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何取消或重置 UIGestureRecognizer ?问题是,如果我在手势中将 waitForSomething 设置为,则下一个事件是 UIGestureRecognizerStateChanged 。但第一个事件应该是 UIGestureRecognizerStateBegan

how can I cancel or reset an UIGestureRecognizer? The problem is, that if I set waitForSomething to NO during a gesture, the next event is UIGestureRecognizerStateChanged. But the first event should be 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;
    }
}

谢谢你的帮助!

推荐答案

我明白了! : - )

I got it! :-)

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

Maybe someone else runs in this problem, here is the solution:

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

下一个事件将是 UIGestureRecognizerStateFailed 后跟 UIGestureRecognizerStateBegan

这篇关于如何取消/重置UIGestureRecognizer的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆