requireGestureRecognizerToFail不起作用

Lol*_*z89 1 iphone objective-c ipad ios uitapgesturerecognizer

我正在使用两个不同的TapGestureRecognizer来处理屏幕上的单击和双击.这是代码:

UITapGestureRecognizer *tapGR =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTap:)];
    [tapGR setDelegate:self];
    [tapGR setNumberOfTapsRequired:1];
    [self addGestureRecognizer:tapGR];


    UITapGestureRecognizer *doubleTapGR = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleDoubleTap:)];
    [doubleTapGR setNumberOfTouchesRequired:2];
    [self addGestureRecognizer:doubleTapGR];

    [tapGR requireGestureRecognizerToFail : doubleTapGR];

    [tapGR release];
    [doubleTapGR release];
Run Code Online (Sandbox Code Playgroud)

即使我指定了[tapGR requireGestureRecognizerToFail:doubleTapGR],也会执行"handleTap"选择器.哪里出错了?

ggr*_*ana 5

你犯了一个错误!您使用的setNumberOfTouchesRequired方法doubleTapGR代替使用setNumberOfTapsRequired.这是更正后的代码:

UITapGestureRecognizer *tapGR =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTap:)];
[tapGR setDelegate:self];
[tapGR setNumberOfTapsRequired:1];
[self addGestureRecognizer:tapGR];


UITapGestureRecognizer *doubleTapGR = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleDoubleTap:)];
[doubleTapGR setNumberOfTapsRequired:2];
[self addGestureRecognizer:doubleTapGR];

[tapGR requireGestureRecognizerToFail : doubleTapGR];

[tapGR release];
[doubleTapGR release];
Run Code Online (Sandbox Code Playgroud)

最好的祝福 ;)