Ответ 1
Авто-макет был проигнорирован, поскольку как ячейка прототипа, так и UIView ячейки получили специальный класс ячеек в IB.
Установка UIView обратно в класс UIView решила проблему.
Несмотря на то, что для всех элементов, включая вертикальные, необходимые для подсчета его высоты, были установлены ограничения на автоматическую компоновку: все ячейки сжимаются.
Вот скриншот результата и ограничений в раскадровке.
В VC, который содержит tableView, вот код в viewDidLoad:
tableView.estimatedRowHeight = 120.0
tableView.rowHeight = UITableViewAutomaticDimension
Замечание второй строки дает ячейки с высотой 120,0, но Autolayout также игнорируется.
Спасибо
Чтобы упростить интерфейс, я оставил одну метку с ограничениями:
И с этим упрощенным интерфейсом авто-макет все еще не учитывается, что подсказывает мне, что проблема не связана с плохо установленными ограничениями.
В Инспекторе размеров высота строки устанавливается на 120 и проверяется Custom. Ячейка имеет правильный пользовательский класс, правильный идентификатор повторного использования ячеек.
Это была простая ошибка, см. мой ответ ниже.
Авто-макет был проигнорирован, поскольку как ячейка прототипа, так и UIView ячейки получили специальный класс ячеек в IB.
Установка UIView обратно в класс UIView решила проблему.
Спасибо Спасибо спасибо!!
Я думаю, проблема в том, что вы реализуете:
func tableView(_ tableView: UITableView, heightForRowAt indexPath:
IndexPath) -> CGFloat {
return x
}
Вам нужно удалить эту функцию inorder для таблицы, чтобы вычислить ее автоматическую высоту для ячеек.