iOS:如何将触摸事件从子视图转发到超级视图? [复制]
Posted
技术标签:
【中文标题】iOS:如何将触摸事件从子视图转发到超级视图? [复制]【英文标题】:iOS: How to forward touch events from subview to superview? [duplicate] 【发布时间】:2015-08-26 10:56:01 【问题描述】:我的 iPhone 项目中有以下设置(一个 UIButton,它有一个 UIView 作为子视图):
- UIButton // super-view <-------|
| <touch-event>
|_ UIView // sub-view ________|
我已将我的 UIButton 与 IB 的动作(内部修饰)连接到我的视图控制器。但不幸的是,UIView 阻止操作系统调用我的 UIButton 的操作方法,因为 UIView 子视图不响应触摸,因此不会转发到它的超级视图。
如何将动作事件从 UIView 转发到超级视图 UIButton ?这样 UIButton 就“认为”它已经被触摸了,尽管子视图被触摸了。
我已经找到了这些链接,但它们对我没有帮助:
How to send touch events to superview in ios? How to pass the touch event to superview ?Objective-C 中的一些代码示例会很棒!
【问题讨论】:
试试 self.view.layer.zPosition = 1;可能会有所帮助.... 您的意思是将 UIView 层的 zPosition 设置为 1 ?那没有用。不过感谢您的回复。 请给我带有层级的屏幕,我的意思是 self.button.layer.zPosition = 1; 您到底想通过使用 UIView 作为 UIButton 的子视图来实现什么?在你的 UIView 之上放置一个(半)透明的 UIButton 怎么样? 我目前无法亲自尝试,但您是否尝试过在 UIView 中覆盖(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
并始终返回 NO 作为答案?
【参考方案1】:
在您的 UIView 中覆盖 (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
并始终返回 NO 应该可以解决问题。
【讨论】:
以上是关于iOS:如何将触摸事件从子视图转发到超级视图? [复制]的主要内容,如果未能解决你的问题,请参考以下文章