У меня в приложении много таких ячеек. Некоторые самостоятельно определяют размер, другие - нет.
Например, допустим, у нас есть настраиваемый UITableViewCell. 100 высота. Внутри представления содержимого мы перетаскиваем 2 объекта UIView. UIViewTop и UIViewBottom. Каждые 50 в высоту. UIViewTop мы размещаем вверху представления содержимого и даем ему ограничения Leading / Trailing / Top / Height. UIViewBottom мы размещаем в нижней части представления содержимого и даем ему ограничения Leading / Trailing / Bottom / Height. Мы также задаем ограничение вертикального интервала между UIViewTop и UIViewBottom.
Теперь иногда мы хотим, чтобы отображался только UIViewTop, а иногда мы хотим, чтобы отображались UIViewTop и UIViewBottom. Итак, мы перетаскиваем ограничение UIViewBottomHeight как IBOutlet NSLayoutConstraint.
Затем в cellForRowAtIndexPath ... мы либо устанавливаем для этого ограничения IBOutlet значение 0 или 50, в зависимости от того, хотим ли мы показать эту часть или нет.
Если у нас есть саморазмерные ячейки, мы ничего не делаем. Если у нас нет ячеек с автоматическим изменением размера, размер ячейки точно определяется в heightForRowAtIndexPath.
Я получаю предупреждение при обоих обстоятельствах. В отладчике это произойдет сразу после следующего кода ...
`cell.constraintUIViewBottomHeight.constant = __`
Я хочу иметь возможность изменять константы ограничения, но не получать предупреждение Unable to simultaneously satisfy constraints
в консоли.