防止快速点击视图

You*_*eem 5 xcode uiview ios animatewithduration swift

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

示例应用程序的屏幕截图

  • 请记住,我不考虑使用一个按钮,如果是这种情况,我会禁用该特定按钮。此页面将是滚动视图,并且是动态的。

这是我正在使用的代码:

@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)
        })
    }
}
Run Code Online (Sandbox Code Playgroud)

视图在左侧隐藏 180 像素,当单击菜单按钮时,视图将向右移动 180 像素,从而将其带到前面。该函数检查视图是否已经打开,以便它可以将其动画回 180 像素以隐藏它。

我唯一需要的是禁用单击视图。

CFP*_*ort 7

Swift 3 版本对我停止点击非常有用(感谢@Ismail 之前的评论)。

myAddedSubView.isUserInteractionEnabled = true
Run Code Online (Sandbox Code Playgroud)

这是“简单的单行”答案,其作用类似于 z 索引(假设您希望 z 索引为“绝对顶部”。


小智 1

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