Swift,按钮部分是外部视图,我不会处理事件

时间:2017-09-15 21:44:44

标签: ios swift

所以我在swift中有一个布局:

基本上所选按钮的灰色部分不会处理事件,我试过:

bottomView.bringSubview(toFront: startButton)

但是它不起作用,我很快就开始了,但我想是因为它 灰色的部分在de UIView之外,这就是它无法处理事件的原因。有任何建议或解决方法吗?

2 个答案:

答案 0 :(得分:0)

按钮是否在灰色区域视图上方(Z索引的种类)?您始终可以验证按钮是否位于故事板的文档大纲(左侧)中的视图上方。
以下是视图控制器中的示例视图。看看rabbitButton如何超越snailButton

Sample image with views

答案 1 :(得分:0)

这里有一些可能性:

  • 确保灰色视图位于视图堆栈的顶部。为此,请像您一样确定父视图和parentView.bringSubview(toFront: grayStartView)。因此,您需要确保bottomView确实是grayStartView的父视图。
  • 如果grayStartViewUIViewUIImageView而不是UIButton,那么您需要确保它允许用户触摸,使用:{{1 }}。
  • 现在听起来似乎微不足道,但为了防万一,如果它是一个按钮,请确保正确添加目标:grayStartView.isUserInteractionEnabled = true或视图:grayStartButton.addTarget(self, action: #selector(yourMethod), for: .touchUpInside)
  • 此外,您需要确保,如果您向grayStartView或grayStartButton添加任何子视图,则需要调用grayStartView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(yourMethod))),否则子视图会吸收触摸。
  • 最后,我会检查你的方法(特别是subviewOfGrayButton.isUserInteractionEnabled = false)是否写得正确:


sender

如果它仍然无效,那么了解有关视图层次结构的更多信息会很有帮助:)

注意:从我所看到的情况来看,您似乎错过了这里的宽度限制(或者可能是有意的?)所以即使它与您的问题无关,您也可以查看这个以及