Проблема с UIView-Encapsulated-Layout-Width при вставке раздела в UITableView - PullRequest
0 голосов
/ 08 марта 2019

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

Что я прочитал до сих пор:

Мой случай следующий. Я использую 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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...