Высота ярлыка в ячейке не будет изменяться динамически - PullRequest
0 голосов
/ 02 июля 2019

У меня есть ячейка с несколькими метками init.Один из ярлыков для вопроса.Мое приложение имеет разные вопросы разной длины.Поэтому мне нужно, чтобы мой ярлык имел динамическую высоту.Я хочу добиться этого с помощью автоматического макета.Когда я запускаю свое приложение с моим текущим автоматическим макетом, оно не меняет высоту (см. Рисунки).Я не уверен, что я делаю неправильно.Я изменил количество строк метки на 0 и добавил:

tableView.estimatedRowHeight = tableView.rowHeight
tableView.rowHeight = UITableView.automaticDimension

и

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return UITableView.automaticDimension
}

для моего viewDidLoad (), но это не изменит высотумоего лейбла.Странно то, что он изменит высоту, когда вид меняется на другой вид.Смотрите ссылку на Youtube, чтобы понять, о чем я говорю: Youtube видео .Измените скорость видео на самую медленную, чтобы увидеть лучшие результаты.Это происходит примерно через 0:04 секунды.

Ограничения: Auto layout

AutoLayout

Меткана устройстве:

Label on device

Авторская метка Ограничения:

Autor label

BannerviewОграничения:

Banner view contraints

Ответы [ 2 ]

1 голос
/ 02 июля 2019

Первоначально tableViewCell принимает height в соответствии с label's text т.е. Загрузка ...

Как только вы получите Questions ответ от Firebase, чтобы отразить изменения в tableViewCell's content и height, вам необходимо перезагрузить весь tableView, то есть

tableView.reloadData()

. Вызвать вышеуказанный кодкак только вы получите ответ API и после обновления dataSource, который вы используете для tableView.

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

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

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