requireGestureRecognizerToFail 不起作用

Posted

技术标签:

【中文标题】requireGestureRecognizerToFail 不起作用【英文标题】:requireGestureRecognizerToFail do not work 【发布时间】:2012-06-18 15:41:57 【问题描述】:

我正在使用两种不同的 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];

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

【问题讨论】:

【参考方案1】:

你错了!您对doubleTapGR 使用了setNumberOfTouchesRequired 方法,而不是使用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];

最好的问候 ;)

【讨论】:

如果我在单击时有轻微的延迟,是不是我做错了什么?【参考方案2】:

我想你可能遗漏了:

[doubleTapGR setDelegate:self];

【讨论】:

我自己回答了我的问题,对不起,我真的很笨:(【参考方案3】:

我发现我真的很笨:)

我写道:

[doubleTapGR setNumberOfTouchesRequired:2];

代替:

[doubleTapGR setNumberOfTapsRequired:2];

请随意删除此答案。抱歉 ***。

【讨论】:

以上是关于requireGestureRecognizerToFail 不起作用的主要内容,如果未能解决你的问题,请参考以下文章