子UIViewController视图可防止容器UIViewController视图接收触摸事件

时间:2018-09-12 11:14:36

标签: ios swift

我在主UIViewController中有一个地图和一些按钮,在子UIViewController中有一个弹出视图。问题在于子UIViewController的主视图阻止主按钮和地图接收任何触摸事件!

结构如下:

  • 主UIViewController
    • 视图
      • MapView
      • UIButton
  • 子UIViewController
    • 视图 <-这可防止主视图控制器接收任何触摸事件
      • 弹出式UIView
      • 按钮

修改:
这段代码可以传递所有事件,但是我不需要停止弹出UIView和按钮事件

override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
print("Passing all touches to the next view (if any), in the view stack.")
return false

}

1 个答案:

答案 0 :(得分:0)

基于@BencePattogato答案,此代码修复了我的问题。谢谢

class UnTouchableView: UIView {
    override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
        return subviews.contains(where: {
            !$0.isHidden && $0.point(inside: self.convert(point, to: $0), with: event)
        })
    }
}