iOS版。如何使透明图像通过触摸到它下面的UIButton?

时间:2011-04-30 15:00:28

标签: uiimageview uibutton touches

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

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

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

谢谢,
道格

3 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:0)

除了巴斯蒂安的答案之外,还有必要在我的Opaque

的界面构建器中取消选中UIImageView绘图属性

答案 2 :(得分:0)

即使启用了用户交互,这是在Interface Builder中放置UIImageView时的默认值,即使图像视图具有纯色背景,触摸也应该传递到下面的按钮。还有其他东西必须像坐在按钮顶部的UIView一样。

如果您正在尝试执行更复杂的操作以获取触摸以传递到底层视图或其视图位于其下的单独视图控制器,我创建了这个简单的开源库:
https://github.com/natrosoft/NATouchThroughView
REAMDE和demo演示了如何使用它。