Ios 如何在swift 4中取消没有按钮的侧菜单
我有一些问题。我用swift4做了配菜 当我点击按钮时,侧菜单出现并消失 但我想让没有按钮的菜单消失 例如,当我单击另一个视图(不是侧菜单)时,单击“消失侧菜单” 我的代码是这样的Ios 如何在swift 4中取消没有按钮的侧菜单,ios,swift,swift4,side-menu,Ios,Swift,Swift4,Side Menu,我有一些问题。我用swift4做了配菜 当我点击按钮时,侧菜单出现并消失 但我想让没有按钮的菜单消失 例如,当我单击另一个视图(不是侧菜单)时,单击“消失侧菜单” 我的代码是这样的 class ContainerVC: UIViewController { @IBOutlet weak var constaint: NSLayoutConstraint! var sideMenuOpen = false override func viewDidLoad() { super.view
class ContainerVC: UIViewController {
@IBOutlet weak var constaint: NSLayoutConstraint!
var sideMenuOpen = false
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(toggleSideMenu), name: NSNotification.Name("ToggleSideMenu"), object: nil)
}
@objc func toggleSideMenu(){
if sideMenuOpen {
sideMenuOpen = false
constaint.constant = -130
}else {
sideMenuOpen = true
constaint.constant = 0
}
UIView.animate(withDuration: 0.3){
self.view.layoutIfNeeded()
}
}
当我点击白色背景(视图),消失侧菜单。
谢谢。您可以使用类似的代码,请在viewDidLoad()中添加以下代码 然后创建一个函数用于dismise
@objc func OpenSideMenu(){
sideMenuOpen = true
constaint.constant = 0
UIView.animate(withDuration: 0.3){
self.view.layoutIfNeeded()
}
}
@objc func closeSideMenu(){
sideMenuOpen = false
constaint.constant = -130
UIView.animate(withDuration: 0.3){
self.view.layoutIfNeeded()
}
}
@objc func dismiss(fromGesture gesture: UISwipeGestureRecognizer) {
closeSideMenu()
}
希望这能奏效。使用委托方法。您可以使用轻触手势使用滑动手势。1。使用滑动手势2。当侧菜单打开时,添加一个点击手势以关闭。是的,问题是什么?谢谢你的建议。但我有一些问题。当我点击白色页面时,消失侧菜单。但是,当再点击一个按钮时,就会出现在菜单的旁边。那你想要什么呢?请再解释一下,我只想要一份菜单。不显示侧菜单。我的意思是当我点击白色背景,消失侧菜单,我只想出现侧菜单关于按钮非常简单,只是创建一个单独的两个功能隐藏和打开侧菜单。调用第一个打开函数以显示菜单,并在点击白色背景时调用隐藏函数。简单的
@objc func OpenSideMenu(){
sideMenuOpen = true
constaint.constant = 0
UIView.animate(withDuration: 0.3){
self.view.layoutIfNeeded()
}
}
@objc func closeSideMenu(){
sideMenuOpen = false
constaint.constant = -130
UIView.animate(withDuration: 0.3){
self.view.layoutIfNeeded()
}
}
@objc func dismiss(fromGesture gesture: UISwipeGestureRecognizer) {
closeSideMenu()
}