带有 UITapGestureRecognizer 的 UIView 顶部的 UIButton 不起作用

Posted

技术标签:

【中文标题】带有 UITapGestureRecognizer 的 UIView 顶部的 UIButton 不起作用【英文标题】:UIButton on top of UIView with UITapGestureRecognizer doesn't work 【发布时间】:2011-09-15 09:33:33 【问题描述】:

如标题所示,我有一个 UIView 子类,其中添加了 UITapGR

在这个类的子类中,我在视图顶部放置了几个UIButtons。 UIButton 不会收到任何触摸。当我试图查看[[tapGR view] class] 时,它是UIButton 的父视图。将setCancelsTouchesInView 称为“否”也无济于事。

有什么想法吗?

【问题讨论】:

如何使用单击 ...numberOfTapsRequired = 1 并为您希望与其他识别器同时使用的每个按钮使用按钮的框架等。 找到了[在此处输入链接描述][1] [1]:***.com/questions/3344341/… 【参考方案1】:

您可以使用此代码忽略UIButton 的触摸事件:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
    if ([touch.view isKindOfClass:[UIButton class]])
        return NO;
    
    return YES;

【讨论】:

【参考方案2】:

如果您希望能够点击某些内容,您可以

.userInteractionEnabled = NO 

【讨论】:

是的,但我仍然想使用 UITapGestureRecognizer,如果我设置 .setUserInteractionEnabled = NO 我无法从 UITapGR 接收事件 但识别器设置在 UIVIew 上?这就是为什么你应该禁用按钮上的交互,或者我错过了什么 情况是 UIView 上面有 UITapGR,在 UIView 之上我有 UIButton,我需要同时使用这两个东西

以上是关于带有 UITapGestureRecognizer 的 UIView 顶部的 UIButton 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

iOS 使用带有 UILabel 的 UITapGestureRecognizer 滑动到下一页

ios - 带有 UITextView 的 UITapGestureRecognizer

带有 UITapGestureRecognizer 的 UIView 上的 UITableView(单元格选择不起作用)

带有可折叠侧边栏菜单 Swift 的 UITapGestureRecognizer

带有 UITapGestureRecognizer 的 UIView 顶部的 UIButton 不起作用

带有 UITapGestureRecognizer 的 UIView 通过拖动到它下面的 UITableView ?