防止在 swift 中点击查看

Prevent click through view in swift

我在 Xcode 和 swift 工作,我创建了一个视图作为菜单,点击时切换,当菜单出现时我仍然可以点击它下面的测试按钮。我不希望发生这种情况。我希望禁用视图后面的所有内容,优先考虑菜单视图。 (查看下图)

screenshot from the sample app

这是我正在使用的代码:

@IBAction func MenuButton(sender: UIButton) {
    if self.MenuView.frame.origin.x == -180 {
        UIView.animateWithDuration(0.5, animations:{
            self.MenuView.frame = CGRectMake(self.MenuView.frame.origin.x + 180, self.MenuView.frame.origin.y, self.MenuView.frame.size.width, self.MenuView.frame.size.height)
        })

    } else {
        UIView.animateWithDuration(0.5, animations:{
            self.MenuView.frame = CGRectMake(self.MenuView.frame.origin.x - 180, self.MenuView.frame.origin.y, self.MenuView.frame.size.width, self.MenuView.frame.size.height)
        })
    }
}

视图在左侧隐藏 180 像素,当单击菜单按钮时,视图将向右移动 180 像素,使其位于最前面。该函数检查视图是否已经打开,以便它可以将其动画后退 180 像素以隐藏它。

我唯一需要做的就是禁用点击视图。

按钮仍然可见和可点击的事实意味着它必须在菜单的前面。如果您重新排列事物的顺序,使菜单位于按钮前面,那么您应该会得到您要查找的结果。

Swift 3 版本非常适合我阻止点击(感谢@Ismail 之前的评论)。

myAddedSubView.isUserInteractionEnabled = true

这是 'simple, one-line' 的答案,其工作方式类似于 z 索引(假设您希望 z 索引为 'absolute top'。