Я создаю приложение «Контакты», чтобы попрактиковаться в использовании программного интерфейса.
Изображение RootTableViewController:
У меня естькнопка addNewContact в правом верхнем углу. Я могу нажать эту кнопку, чтобы перейти к контроллеру представления с формой, заполнить форму, отправить и отклонить контроллер представления, и tableView обновится без проблем.
Однако, если я сначала выберу строку (вызывая didSelectRowAt), отклоняет отображаемое представление и , а затем нажмите кнопку addNewContact, tableView исчезнет. Он исчезает, в частности, когда появляется вид из кнопки addNewContact, а НЕ когда я закрываю вид.
Ниже приводится ошибка, которая выводится на печать:
Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
(
"<NSLayoutConstraint:0x600000ddab70 cellStackView.leading == UILayoutGuide:0x600001791880'UIViewLayoutMarginsGuide'.leading (active, names: cellStackView:0x7fefba71b600 )>",
"<NSLayoutConstraint:0x600000ddac10 UILayoutGuide:0x600001791880'UIViewLayoutMarginsGuide'.trailing == cellStackView.trailing (active, names: cellStackView:0x7fefba71b600 )>",
"<NSLayoutConstraint:0x600000d94cd0 'UIView-Encapsulated-Layout-Width' UITableViewCellContentView:0x7fefba713b50.width == 0 (active)>",
"<NSLayoutConstraint:0x600000dd8280 'UIView-leftMargin-guide-constraint' H:|-(16)-[UILayoutGuide:0x600001791880'UIViewLayoutMarginsGuide'](LTR) (active, names: '|':UITableViewCellContentView:0x7fefba713b50 )>",
"<NSLayoutConstraint:0x600000dd98b0 'UIView-rightMargin-guide-constraint' H:[UILayoutGuide:0x600001791880'UIViewLayoutMarginsGuide']-(16)-|(LTR) (active, names: '|':UITableViewCellContentView:0x7fefba713b50 )>"
)
Я полагаю, что ошибка находится в третьем ограничениигде 'UIView-Encapsulated-Layout-Width' UITableViewCellContentView: 0x7fefba713b50.width == 0 .
Я перепробовал многие из предложенных мной советов, например, явную настройку размера представления контента или понижение приоритета ограничений contentView. Я также попытался удалить ограничение stackView.trailingAnchor, чтобы ширина stackView соответствовала внутреннему размеру содержимого. Когда я сделал все это, ошибки перестали печатать в журнале, но проблема исчезающего tableView осталась.
Возможно, уместно: Ячейки ячеек tableView являются пользовательскими. Пользовательские ячейки размещаются в своем собственном классе. Это просто пара меток в stackView. Параметр stackView ограничен начальным, конечным, верхним и нижним краями contentView.layoutMarginsGuide.
Код можно найти здесь . Это не долго читать. Проблемы должны находиться в пределах ContactTableViewCell и RootTableViewController.
Буду признателен за любые рекомендации по этому вопросу!