Как изменить размер представления контейнера с анимацией при изменении размера встроенного представления? - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь в следующих сценариях. 1. контейнер имеет встроенный вид. 2. Как только высота встроенного вида изменяется с анимацией, 3. При использовании анимации высота контейнера также изменяется так же, как и высота встроенного представления.

Я уже пробовал "translationsAutoresizingMaskIntoConstraints = false"

Это работает .. Размер представления контейнера изменяется при изменении размера встроенного представления. Однако высота контейнера изменяется без анимации.

Есть ли какой-нибудь правильный способ обновить размер представления контейнера с помощью анимации при обновлении размера встроенного представления?

Ответы [ 2 ]

0 голосов
/ 03 июля 2019

Добавьте top, bottom, leading and trailing constraints из innerView с outerView. Кроме того, добавьте height constraint к innerView.

enter image description here

Теперь анимируйте height constraint из innerView как,

self.innerViewHeightConstraint.constant = 60.0
UIView.animate(withDuration: 0.3) {
    self.view.layoutIfNeeded()
}

enter image description here

0 голосов
/ 03 июля 2019

Вы можете удалить ограничения ширины / высоты контейнера и оставить только ограничения ширины / высоты встроенного представления.Итак, встроенный вид установит высоту / ширину контейнера.Затем вы можете анимировать ограничение высоты встроенного вида и высота контейнера также будет изменена анимированно.

Интерфейс выглядит следующим образом: черный это контейнер, розовый это встроенный вид

РЕДАКТИРОВАНИЕ

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

код выглядит следующим образом:

UIView.animate(withDuration: 0.3) {
            containerView.transform = CGAffineTransform(scaleX: 0.5, y: 0.5)
}
...