iOS - 多次点击手势识别器

标签 ios tap uitapgesturerecognizer

在我的应用程序中,我必须检测单击、双击和三次点击。所以,我正在使用 UITapGestureRecognizer。我正在使用以下代码:

    UITapGestureRecognizer *oneTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTapGestureOnAnimal:)];
    oneTap.numberOfTapsRequired = 1;

    UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTapGestureOnAnimal:)];
    doubleTap.numberOfTapsRequired = 2;
    [doubleTap requireGestureRecognizerToFail:oneTap];

    UITapGestureRecognizer* tripleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTripleTapGestureOnAnimal:)];
    tripleTap.numberOfTapsRequired = 3;
    [tripleTap requireGestureRecognizerToFail:doubleTap];

    [self addGestureRecognizer:oneTap];
    [self addGestureRecognizer:doubleTap];
    [self addGestureRecognizer:tripleTap];

但问题是它总是只检测单击和双击。它根本没有检测到三次点击....有人可以指出我在检测三次点击时犯的错误吗?

最佳答案

检查一下,

[oneTap requireGestureRecognizerToFail:doubleTap];
[oneTap requireGestureRecognizerToFail:tripleTap];
[doubleTap requireGestureRecognizerToFail:tripleTap];

您已经在方法中切换了水龙头,但您没有执行上面的第二行。理想情况下,只有在双击和三次点击失败时才应检测到一次点击。并且在三次点击失败时应该检测到双击。

关于iOS - 多次点击手势识别器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13866623/

相关文章:

ios - flutter 适用于 iOS 的新版 Google Maps SDK 可用 : 4. 1.0.0

iOS 8 sizeThatFits for UITextView 文本不返回正确的高度(AutoLayout)

ios - 在 UICollectionViewCell 上实现在 View 上滑动而不在滚动期间滑动

ios - 如何在条形图数据上设置 x 轴 - ios-charts?

ios - 当 UIPopoverController 处于事件状态时,UIWebView 未检测到点击

ios - swift 3 : unrecognized selector sent to instance for gesture recognizer

android - android 是否在提交按钮周围添加了额外的 Activity 区域?

javascript - $.Deferred() 和 $.ajax() 在 Node.JS 中不起作用

ios - UITableViewCell 只接受长按