iOS: 如何将触摸事件从子视图转发到父视图?

iOS: How to forward touch events from subview to superview?

我的 iPhone 项目中有以下设置(一个 UIButton 有一个 UIView 作为子视图):

- UIButton       // super-view   <-------|
  |                                <touch-event>
  |_ UIView      // sub-view     ________|

我已经使用 IB 从我的 UIButton 将一个动作(内部修饰)连接到我的视图控制器。但不幸的是,UIView 阻止 OS 调用我的 UIButton 的操作方法,因为 UIView 子视图不响应触摸,因此不会转发到它的超级视图。

如何将操作事件从 UIView 转发到超级视图 UIButton ?使得虽然子视图被触摸到但它被触摸的UIButton "thinks"。

我已经找到了这些链接,但它们对我没有帮助:

Objective-C 中的一些代码示例会很棒!

在您的 UIView 中覆盖 (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 并始终返回 NO 应该可以解决问题。