【问题标题】:Disable interaction on transparent view without affecting its subviews and buttons在不影响其子视图和按钮的情况下禁用透明视图上的交互
【发布时间】:2018-09-25 04:21:45
【问题描述】:

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

如下图:

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

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

有什么建议吗??

【问题讨论】:

    标签: ios swift xcode cocoa-touch uiview


    【解决方案1】:

    创建一个自定义视图overridepointInside:,当点不在符合条件的子视图中时,它返回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
    }
    

    【讨论】:

    • 嗨@Jakub。我怎样才能让这个 UIContainerView 工作
    猜你喜欢
    • 1970-01-01
    • 2018-12-07
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    相关资源
    最近更新 更多