Автозапуск игнорируется в пользовательском UITableViewCell

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

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

введите описание изображения здесь

В VC, который содержит tableView, вот код в viewDidLoad:

tableView.estimatedRowHeight = 120.0
tableView.rowHeight = UITableViewAutomaticDimension

Замечание второй строки дает ячейки с высотой 120,0, но Autolayout также игнорируется.

Спасибо


Update

Чтобы упростить интерфейс, я оставил одну метку с ограничениями:

  • Ведущее пространство для наблюдения
  • Верхнее пространство для просмотра
  • Фиксированная ширина и высота (100 и 100)
  • Нижнее пространство в поле контейнера, чтобы убедиться, что ячейка имеет все вертикальные ограничения, чтобы определить ее высоту.

И с этим упрощенным интерфейсом авто-макет все еще не учитывается, что подсказывает мне, что проблема не связана с плохо установленными ограничениями.

В Инспекторе размеров высота строки устанавливается на 120 и проверяется Custom. Ячейка имеет правильный пользовательский класс, правильный идентификатор повторного использования ячеек.


Обновление: найденное решение

Это была простая ошибка, см. мой ответ ниже.

Ответы

Ответ 1

Авто-макет был проигнорирован, поскольку как ячейка прототипа, так и UIView ячейки получили специальный класс ячеек в IB.

Установка UIView обратно в класс UIView решила проблему.

just to be über clear

Ответ 2

Спасибо Спасибо спасибо!!

Ответ 3

Я думаю, проблема в том, что вы реализуете:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: 
IndexPath) -> CGFloat {

 return x
}

Вам нужно удалить эту функцию inorder для таблицы, чтобы вычислить ее автоматическую высоту для ячеек.