DevPrep

Все темы › Auto Layout

Self-sizing ячейки: как UITableView и UICollectionView считают высоту?

Middle PRO

Суть

В self-sizing режиме высоту ячейки задаёт не делегат, а Auto Layout. Коллекция фиксирует ширину (ширину таблицы или item из layout), просит ячейку посчитать подходящий размер через systemLayoutSizeFitting и получает высоту из констрейнтов contentView. Пока ячейка не показана, используется оценка: она нужна, чтобы посчитать contentSize и полосу прокрутки, не раскладывая все ячейки.

Отсюда главное требование: внутри contentView нужна непрерывная цепочка констрейнтов от top до bottom, а многострочные лейблы — с numberOfLines = 0 и полными горизонтальными констрейнтами.

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store