禁用透明视图上的交互,而不影响其子视图和按钮

时间:2018-04-15 08:53:14

标签: ios swift xcode cocoa-touch uiview

我想在视图中创建一个浮动菜单,稍后将其添加到许多选项卡视图视图控制器中。所以我希望视图本身是透明的,并且不会在保持用户与菜单按钮交互的同时接收交互。

如下图所示:

enter image description here

我尝试将视图alpha设置为0,然后将其级联到所有子视图。

尝试将userInteractionEnabled设置为NO,它也会向下级联到所有子视图。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

创建自定义视图override pointInside:,当该点不在符合条件的子视图中时,它会返回false

看起来像这样:

override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
    for subview in subviews {
        if !subview.hidden, subview.userInteractionEnabled, subview.frame.contains(point) {
            return true
        }
    }
    return false
}