iOS: как изменить направление анимации изменения размера представления: - PullRequest
0 голосов
/ 03 октября 2018

Я работаю над экраном, на котором у меня есть UIScrollView, и мне нужно предоставить функцию изменения размера для UIView и UILabel.Все представления добавляются в UIScrollView с ограничениями макета.

Теперь, чтобы изменить размер UILabel, я использую следующий код:

desriptionLabel.numberOfLines = desriptionLabel.numberOfLines == 0 ? 1 : 0
UIView.animate(withDuration: 0.5) {
    self.descriptionView.layoutIfNeeded()
}

Чтобы изменить размер представления, я создалIBOutlet для ограничения высоты этого представления, и я делаю следующее:

if additionalSocialViewHeightConstraint.constant == 60 {
    additionalSocialViewHeightConstraint.constant = 240
} else {
    additionalSocialViewHeightConstraint.constant = 60
}

UIView.animate(withDuration: 0.5) {
   self.additonalSocialView.layoutIfNeeded()
}

Теперь обе анимации работают и меняют размеры метки и представления соответственно, проблема, с которой я сталкиваюсь, заключается в том, как работают эти анимации.

в обоих случаях анимация расширяет вид из центра и наружу.Таким образом, для метки вид метки сразу увеличивается до ожидаемого размера, чтобы вместить весь текст метки, а затем текст начинает расширяться от одной линии в центре большого вида в обоих направлениях вверх и вниз.

В случае вида.снова вид сначала увеличивает пространство вокруг него, где первоначальный вид находится в середине этого пространства, а затем увеличивается в обоих направлениях вверх и вниз, чтобы занять все пространство.

Проблема: Теперь, поскольку я нахожусь в UIScrollView, это выглядит не очень хорошо, и мне нужно изменить анимацию, начиная с середины и распространяясь в обоих направлениях, чтобы начинать сверху и распространяться только вниз.Кроме того, мне нужно, чтобы сжатие до исходного размера анимации работало таким же образом, что означает уменьшение представления снизу вверх.

Вопрос: Кто-то знает, как мне управлять этимвид анимации?что я делаю не так?Любая помощь приветствуется.

Конфигурация ограничений для обоих представлений:

UILabel:

enter image description here

UIView:

enter image description here

...