4

对于我正在编写的 iPad 应用程序,我有一个容器 UIView,其中包含两个子视图,它们是 UIView 子类:

  • 一个 UIImageView,其图像的一部分被切掉以显示其下方的内容。
  • UIImageView 下方的 UIButton,通过 UIImageView 的切除部分显示。

由于 UIImageView 在空间上与 UIButton 重叠,因此即使 UIButon 由于 UIImageView 中的 alpha 遮罩切口而完全可见,它也会阻止触摸到达 UIButton。如何允许 UIImageView 将触摸传递给它的兄弟 UIButton?

谢谢,
道格

4

3 回答 3

4

UIImageView 通常不会阻止触摸,UIViews 会。

您可以将重叠视图上的 userInteractionEnabled 属性设置为 NO,然后触摸应该通过它们。

另一种方法是编写一个自定义的 hitTest,将 thouches 重定向到按钮。

于 2011-04-30T15:13:42.327 回答
0

即使启用了用户交互,这是在 Interface Builder 中放置 UIImageView 时的默认值,即使图像视图具有纯色背景,触摸也应该传递到下方的按钮。必须有其他事情发生,例如按钮顶部的 UIView。

如果您尝试做一些更复杂的事情来让触摸传递到底层视图或视图位于下面的单独视图控制器,我创建了这个简单的开源库:
https
://github.com/natrosoft/NATouchThroughView REAMDE 和演示展示如何使用它。

于 2013-10-22T11:49:48.310 回答
0

除了巴斯蒂安的回答之外,我还需要取消选中Opaque界面生成器中的绘图属性UIImageView

于 2013-05-01T14:22:59.647 回答