Я знаю, что это известная проблема, и она много обсуждалась. Однако я много раз задавал эти вопросы, и ни одно из этих решений не решило мою проблему. Кроме того, я полностью работаю в коде, поэтому нет раскадровки.
Что я прочитал до сих пор:
Мой случай следующий. Я использую UITableView
с разделами. Каждый раздел имеет headerView и footerView. Кроме того, вся таблица также имеет headerView и footerView. Таким образом, для каждого раздела есть один общий верхний и нижний колонтитулы, а также верхний и нижний колонтитулы. Заголовок для всего UITableView
показывает заголовок, нижний колонтитул показывает кнопки «Добавить раздел» и «Опубликовать». В заголовке раздела отображается заголовок раздела, а в нижнем колонтитуле раздела отображается кнопка «Добавить строку».
Я НЕ устанавливаю расчетную высоту. Я имел обыкновение, но я удалил их, поскольку мне не нужны оценки, я знал, какое это будет значение (это не динамично) - однако удаление или добавление их, похоже, не влияет на мою проблему. Так что нет estimatedHeightForFooterInSection
, estimatedHeightForHeaderInSection
или estimatedHeightForRowAt
. Я добавляю ограничения, как они должны, и все работает нормально, при открытии UIViewController
с UITableView
ошибок нет. Однако ошибка Encapsulated-Height или Encapsulated-Width появляется, когда я вставляю новый раздел (это не происходит, когда я вставляю новую строку):
"<NSLayoutConstraint:0x7ff8557ce1a0 H:|-(15.9574)-[Project.ShadowView:0x7ff8557c8ba0] (active, names: '|':_TtCC5Project26TableViewController14sectionFooter:0x7ff8557c88e0 )>",
"<NSLayoutConstraint:0x7ff8557ce660 Project.ShadowView:0x7ff8557c8ba0.trailing == _TtCC5Project26TableViewController14sectionFooter:0x7ff8557c88e0.trailing - 15.9574 (active)>",
"<NSLayoutConstraint:0x7ff851ea1510 'UIView-Encapsulated-Layout-Width' _TtCC5Project26TableViewController14sectionFooter:0x7ff8557c88e0.width == 0 (active)>"
Это также происходит время от времени с высотой вместо ширины (.height == 0). ShadowView ссылается на мой footerView (это пользовательский вид с тенью позади него). Ограничения для этого вида (normalSpacing - это переменная, определяемая на основе ширины экрана):
footerView.topAnchor.constraint(equalTo: topAnchor).isActive = true
footerView.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -normalSpacing).isActive = true
footerView.leadingAnchor.constraint(equalTo: leadingAnchor, constant: normalSpacing).isActive = true
footerView.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -normalSpacing).isActive = true
Важно: мои взгляды не нарушены, все работает как положено, ошибка появляется только в моей консоли и заставляет меня захотеть ее исправить. Так что же это такое, откуда оно и прежде всего: как мне это исправить?