在不影响其子视图和按钮的情况下禁用透明视图上的交互

Disable interaction on transparent view without affecting its subviews and buttons

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

如下图:

我试图将视图 alpha 设置为 0,它向下级联到它的所有子视图。

尝试将 userInteractionEnabled 设置为 NO 它也确实级联到所有子视图。

有什么建议吗??

创建一个自定义视图override pointInside:,它returns 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
}