添加 UITapGestureRecognizer 后 UIButtons 将不起作用

Posted

技术标签:

【中文标题】添加 UITapGestureRecognizer 后 UIButtons 将不起作用【英文标题】:UIButtons won't work after UITapGestureRecognizer is added 【发布时间】:2012-04-21 16:02:43 【问题描述】:

我有以下代码,我将 UITapGestureRecognizer 添加到我的视图中:

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self
                                                                      action:@selector(userTapped)];

 [self.view addGestureRecognizer:tap];

我的问题是,当我按下与 UITapGestureRecognizer 在同一视图上的其他 UIButtons(按钮在 IB 中创建)时,没有任何反应。

我想我只向gestureRecognizer添加了一个动作(userTapped:),但是如何添加与创建的其他按钮的交互?

【问题讨论】:

我的想法是下一个:我需要创建一些 backgroundVIew 并在其中添加 GestureRecognizer 【参考方案1】:

试试

tap.cancelsTouchesInView = NO;

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch

        if([touch.view isKindOfClass:[UIButton class]])
            return NO;
        return YES;

【讨论】:

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

将 UITapGestureRecognizer 添加到 UIControl

如何将参数添加到通用 UITapGestureRecognizer?

尝试添加 UITapGestureRecognizer 但不工作

UITableView添加UITapGestureRecognizer与didSelectRowAtIndexPath冲突解决方法

如何知道 UITapGestureRecognizer 是不是已添加到子视图

添加 UITapGestureRecognizer 时 UIImageView 崩溃