Self-sizing ячейки: как UITableView и UICollectionView считают высоту?
Суть
В self-sizing режиме высоту ячейки задаёт не делегат, а Auto Layout. Коллекция фиксирует ширину (ширину таблицы или item из layout), просит ячейку посчитать подходящий размер через systemLayoutSizeFitting и получает высоту из констрейнтов contentView. Пока ячейка не показана, используется оценка: она нужна, чтобы посчитать contentSize и полосу прокрутки, не раскладывая все ячейки.
Отсюда главное требование: внутри contentView нужна непрерывная цепочка констрейнтов от top до bottom, а многострочные лейблы — с numberOfLines = 0 и полными горизонтальными констрейнтами.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep