Можно ли переместить ViewController (A), который находится в другом ViewController (B), с помощью UIPanGestureRecognizer?(Программный) - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь создать мини боковое меню, которое будет двигаться жестом.

Я зарегистрировал этот жест в моем меню ViewController, но когда я использую «перевод» для перемещения левого якоря моего BaseMenuController, он не перемещается ...

class MainController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    view.backgroundColor = .white
    setupConstraints()
 }

 var baseMenuViewLeftAnchor: NSLayoutConstraint!
 func setupConstraints() {
    let baseMenuController = BaseMenuController()
    let baseMenuView = baseMenuController.view!
    baseMenuView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(baseMenuView)
    addChild(baseMenuController)

    baseMenuViewLeftAnchor = baseMenuView.leftAnchor.constraint(equalTo: view.leftAnchor)
    menuViewLeftAnchor.isActive = true
    baseMenuView.heightAnchor.constraint(equalToConstant: 200).isActive = true
    baseMenuView.widthAnchor.constraint(equalToConstant: 200).isActive = true
    baseMenuView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true

}



}

class BaseMenuController: UITableViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    view.backgroundColor = .white
    let panGesture = UIPanGestureRecognizer(target: self, action: #selector(handlePan))
    view.addGestureRecognizer(panGesture)
}

@objc func handlePan(gesture: UIPanGestureRecognizer) {
    let mainController = MainController()
    let mainView = mainController.view!
    let translation = gesture.translation(in: mainView)
    let x = translation.x
    mainController.baseMenuViewLeftAnchor.constant = x
}
}
...