Отклонить боковое меню, нажав в любом месте - PullRequest
0 голосов
/ 07 февраля 2019

Я создал боковое меню, используя вид контейнера.Он скользит в главном окне каждый раз, когда я нажимаю на меню.Вы можете найти мой проект здесь: https://github.com/marybnq/side-menu

Мне нужно закрыть его, нажав где-нибудь в mainVC.Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Попробуйте это:

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!)
    }

}

}
0 голосов
/ 07 февраля 2019

Простой:
1. Добавить жест касания для просмотра mainVC и отключить его по умолчанию
2. Включить жест касания при отображении бокового меню, для обработки касаний
3. Отключить жест касания при скрытии бокового меню

...