UILabel numberOfLines меняется с анимацией - PullRequest
0 голосов
/ 12 декабря 2018

У меня UILabel внутри UIStackView, а представление стека находится внутри другого UIScrollView, я использую автоматическое расположение.Метка имеет одну строку (т. Е. numberOfLines равна 1), и в некоторых случаях мне нужно установить ее на многострочное (т. Е. numberOfLines равно 0) с анимацией, которая ее расширяет.

func expand() {
    label.numberOfLines = 0
}

при нажатии кнопки развернуть:

messageView.expand()
UIView.animate(withDuration: 0.3) {
    self.layoutIfNeeded()
}

Однако при расширении рамка метки не обновляется, и мне приходится прокручивать (представление прокрутки), чтобы сделать его полностью видимым.Что может быть не так?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Анимация UILabel не работает в пределах UIView.animate(withDuration:) Это должно работать:

UIView.transition(with: label, duration: 0.5, options: .transitionCrossDissolve, animations: {
     self.label.numberOfLines = 0
})

Вы можете поэкспериментировать с параметрами и блоком выполнения.

0 голосов
/ 12 декабря 2018
  1. Вы изменили текст метки?
  2. Проверьте правильность автопоставки
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...