如何在 swift 4 中消失没有按钮的侧边菜单
How to disappear sidemenu without button in swift 4
我有一些问题。我用 swift4 制作了侧边菜单。
当我单击按钮时,侧边菜单出现并消失。
但我想让没有按钮的侧边菜单消失。
例如,当我单击另一个视图(不是侧边菜单)时,侧边菜单消失。
我的代码是这样的。
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() 中添加以下代码
let tap = UITapGestureRecognizer(target: self, action: #selector(dismiss(fromGesture:)))
self.view.addGestureRecognizer(tap)
然后创建一个 dismiss 函数
@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()
}
希望这会奏效。
我有一些问题。我用 swift4 制作了侧边菜单。
当我单击按钮时,侧边菜单出现并消失。
但我想让没有按钮的侧边菜单消失。
例如,当我单击另一个视图(不是侧边菜单)时,侧边菜单消失。
我的代码是这样的。
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() 中添加以下代码
let tap = UITapGestureRecognizer(target: self, action: #selector(dismiss(fromGesture:)))
self.view.addGestureRecognizer(tap)
然后创建一个 dismiss 函数
@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()
}
希望这会奏效。