通过在任何地方点击来关闭侧面菜单

时间:2019-02-06 21:36:34

标签: swift view dismiss side-menu

我使用容器视图创建了侧面菜单。每次我按菜单时,它就会在主视图中滑动。 您可以在这里找到我的项目: https://github.com/marybnq/side-menu

我需要通过点击mainVC中的任何位置来消除它。 我该怎么办?

2 个答案:

答案 0 :(得分:2)

尝试一下:

class FirstViewController: UIViewController {

@IBOutlet weak var menuConstraint: NSLayoutConstraint!

var sideMenuOpen = false
var gesture : UITapGestureRecognizer?


override func viewDidLoad() {
    super.viewDidLoad()
    NotificationCenter.default.addObserver(self,
                                           selector: #selector(toggleSideMenu), name: NSNotification.Name("ToggleSideMenu"), object: nil)


    gesture = UITapGestureRecognizer(target: self, action: #selector(FirstViewController.toggleSideMenu))

}
@objc func toggleSideMenu() {
    if sideMenuOpen {
        sideMenuOpen = false
        menuConstraint.constant = -240
        self.view.removeGestureRecognizer(gesture!)
    } else {
        sideMenuOpen = true
        menuConstraint.constant = 0
        self.view.addGestureRecognizer(gesture!)
    }

}

}

答案 1 :(得分:1)

简单:
 1.添加轻击手势以查看mainVC并默认禁用它
 2.在显示的侧边菜单上启用点击手势,以处理点击
 3.在隐藏的侧边菜单上禁用点击手势