带有 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
。
在这个类的子类中,我在视图顶部放置了几个UIButton
s。 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