Изменение размера MapView на кране - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть mapView для моего ViewController в раскадровке.Он имеет 4 ограничения (Высота равна: 300, выровнять трейлинг по: Безопасная зона, выровнять, Ведущий к: Безопасная зона, Выровнять по: Безопасная зона. Я создал tapGestureRecognizer для своего просмотра карты. Я хочу изменить размер отображения карты на полный экран, когда пользователь нажмет накарта.

    private func setupMapView() {
        let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(mapTouchAction(gestureRecognizer:)))
        mapView.addGestureRecognizer(gestureRecognizer)
    }

    @objc func mapTouchAction(gestureRecognizer: UITapGestureRecognizer) {

    }

Я пытался изменить ограничение высоты для высоты экрана, но это не то, что мне нужно (представление располагается в центре экрана, а затем его изменение размера, это не то, что я ищудля) Я использовал этот код в моей mapTouchAction (). Я хочу, чтобы мой вид изменил размеры с анимацией до нижнего вида (высота экрана). Как я могу добиться этого? Должен ли я использовать CGAffineTransform или, может быть, есть другой способ? Любые идеи?

   for constraint in self.mapView.constraints {
        if constraint.identifier == "mapViewHeightConstraintID" {
            constraint.constant = UIScreen.main.bounds.height
        }
    }
    UIView.animate(withDuration: 2, animations: {
        self.mapView.layoutIfNeeded()
    })

1 Ответ

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

Я нашел простое решение для моей проблемы.Я только меняю свой фрейм mapView.Так что внутри функции tapGesture mapTouchAction (_: UITapGestureRecognizer) у меня есть

@objc func mapTouchAction(gestureRecognizer: UITapGestureRecognizer) {
    UIView.animate(withDuration: 2, animations: {
        self.mapView.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)
        self.mapView.layoutIfNeeded()
    })
}

Этот код меняет мою высоту mapView на высоту UIScreen без приятной анимации изменения размера в течение 2 секунд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...