Распознаватель жестов не работает, когда другой вид сверху карты Google - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь добавить распознаватель жестов для боковой панели. Я создал боковую панель, которая работает нормально, и я могу открыть / закрыть ее с помощью кнопки панели. Вид выдвигается с левой стороны и размещается поверх вида карт Google.

Было бы логично, если бы пользователь мог щелкнуть левой кнопкой мыши, чтобы закрыть боковую панель, но, к сожалению, он не работает.

@IBOutlet weak var sideMenuView: UIView!


override func viewDidLoad() {
        super.viewDidLoad()

        mapView.isMyLocationEnabled = true
        mapView.delegate = self

        self.locationManager.delegate = self
        self.locationManager.startUpdatingLocation()

        setUpSideMenuWidth()


        let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(swipeAction))
        swipeLeft.direction = .left
        self.sideMenuView.addGestureRecognizer(swipeLeft)
    }

func setUpSideMenuWidth() {

    self.mapView.bringSubviewToFront(self.sideMenuView)

    sideMenuWidth = screenSize.width * 0.7
    self.widthSideMenuConstraint.constant = sideMenuWidth
    self.leadingConstraint.constant = -sideMenuWidth
    self.sideMenuView.layoutIfNeeded()
}

@objc func swipeAction(swipe: UISwipeGestureRecognizer) {

   menuViewAction()
}

func menuViewAction() {

    if (menuShowing) {
        self.leadingConstraint.constant = -sideMenuWidth

        UIView.animate(withDuration: 0.3, animations: {
            self.view.layoutIfNeeded()
        })
    } else {
        self.leadingConstraint.constant = 0

        UIView.animate(withDuration: 0.3, animations: {
            self.view.layoutIfNeeded()
        })
    }

    menuShowing = !menuShowing
}

Я как-то чувствую, что это связано с тем, что мое боковое меню является подпредставлением mapsView. Все сталкивались с такой проблемой, потому что, когда я использую просто кнопку бара, она открывается и закрывается идеально, но по какой-то причине не работает свайп. Я также попытался добавить раскадровку в виде жестов, но безуспешно.

...