防止在 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'。
我在 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'。