Я работаю над экраном, на котором у меня есть 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:
UIView: