timateRowHeight с несколькими линиями метки, вызывающими отсечение ячейки - PullRequest
1 голос
/ 11 октября 2019

Некоторый фон : у меня есть вложенный tableView, в котором я могу иметь различные типы ячеек, начиная от карты до изображений и пары ключ-значение, и так далее, поэтому мне пришлось работать с вложенным tableView, который труднобыть достигнутым с помощью комбинации строк-секций

Я использую ячейки с автоматическим изменением размера.

В моем parentTableView я установил

parentTableView.rowHeight = UITableViewAutomaticDimension
parentTableView.estimatedRowHeight = 200

В моем childTableView я установил

childTableView.rowHeight = UITableViewAutomaticDimension
childTableView.estimatedRowHeight = 68.0

Здесь 68.0 - это размер моей ячейки, которыйпользовательский XIB с двумя UILabel в вертикальной ориентации. Теперь, когда метки не состоят из нескольких строк, tableView выглядит нормально. Но когда я добавляю несколько строк к меткам, ячейки обрезаются

enter image description here

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

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

Может кто-нибудь помочь мне, я пробовал много исправлений, но ничего не работает.

1 Ответ

0 голосов
/ 11 октября 2019

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

Приходит к решению, попробуйте следующее решение: - Добавьте ограничения для каждого элемента согласно вашему требованию, кроме последней UILabel,- Добавьте верхние и нижние ограничения (обязательно) с любыми другими ограничениями (если вам нужно). Это поможет ячейке понять высоту времени выполнения этой ячейки. - В методе tableViewCell (_ heightforrow) укажите высоту как возвращаемую

UITableViewAutomaticDimension

func tableView (_ tableView: UITableView, оценочныйHeightForRowAt indexPath) -> CGFloat {return UITableView.automaticDimension}

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