Две сложенные динамические метки высоты в UITableViewCell - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь разместить две метки в UITableViewCell.У меня есть AutomaticDimension иtimateRowHeight, установленные на моем tableView.enter image description here

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

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

enter image description here

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

Если на метке нет текста, я задаю label.text = "".

Iя звоню sizeToFit() на ярлыках каждый раз, когда я устанавливаю текст.

Какое правильное сочетание ограничений?Вот с чего я сейчас должен начать.enter image description here enter image description here

Ответы [ 3 ]

0 голосов
/ 27 сентября 2018

Лучшее решение - UIStackView.

Если вы все еще хотите использовать UILabel, вы можете попробовать еще одну вещь:

enter image description here

Установка label.text = "" уменьшит высоту метки, но ограничение расстояния между метками не сделает метку в центре.

Для этого добавьте ссылочный выход ограничения расстояния и установите его:

distanceConstraint.constant = 0

программно при настройке label.text = "".

Это установит метку с данными в центре.

Надеюсь, это поможет.

0 голосов
/ 27 сентября 2018
  • Вы должны сделать две метки с ограничениями в начале, в конце, сверху и снизу и не добавлять ограничения по высоте

  • сделать количество строк для меток= 0

  • проверьте метку заголовка и в меню инспектора размера нажмите на приоритет вертикальной ориентации содержимого на 250, а не на 251, как показано на экране

image

  • в viewController подключите ваш просмотр таблицы и добавьте эти строки

    self.tableView.rowHeight = UITableViewAutomaticDimension self.tableView.estimatedRowHeight =44

0 голосов
/ 27 сентября 2018

Это можно сделать с помощью StackViews в iOS,

в раскадровке. Выберите обе надписи и вставьте их в UIStackView

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

enter image description here

Я рекомендую этот урок, чтобы начать работу с UIStackView здесь

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