iOS - 多个Tap手势识别器

Sat*_*yam 6 tap ios 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];
Run Code Online (Sandbox Code Playgroud)

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

iDe*_*Dev 17

检查一下,

[oneTap requireGestureRecognizerToFail:doubleTap];
[oneTap requireGestureRecognizerToFail:tripleTap];
[doubleTap requireGestureRecognizerToFail:tripleTap];
Run Code Online (Sandbox Code Playgroud)

您已经切换了方法中的水龙头,而您没有在上面的第二行.理想情况下,只有在双击和三击失败时才能检测到一个敲击.当三次敲击失败时,应检测到双击.