代码之家  ›  专栏  ›  技术社区  ›  Wissa

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

  •  0
  • Wissa  · 技术社区  · 6 年前

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

    如下图所示:

    enter image description here

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

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

    有什么建议吗??

    1 回复  |  直到 6 年前
        1
  •  2
  •   Jakub Truhlář    6 年前

    创建 自定义视图 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
    }