Я использую UITableViewController
и загружаю настроенный UITableViewCell
.Все элементы в ячейке и ограничения настраиваются программно.TableView выглядит следующим образом
Все работает отлично, кроме случаев удаления ячейки.Я настроил tableView для исчезновения клеток при удалении.Тем не менее, ячейка немного дергается, а затем исчезает влево, и я получаю сообщения об ошибках автоматического размещения в консоли: «Невозможно одновременно удовлетворить ограничения» для значений ниже
"<NSLayoutConstraint:0x600002551a40 UIView:0x7fccbd5286f0.height == 100 (active)>",
"<NSLayoutConstraint:0x6000025505a0 V:|-(16)-[UIView:0x7fccbd5286f0] (active, names: '|':UITableViewCellContentView:0x7fccbd541b10 )>",
"<NSLayoutConstraint:0x600002550730 UIView:0x7fccbd5286f0.bottom == UITableViewCellContentView:0x7fccbd541b10.bottom (active)>",
"<NSLayoutConstraint:0x6000025605a0 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0x7fccbd541b10.height == 1.19209e-07 (active)>"
и ниже
"<NSLayoutConstraint:0x6000025505a0 V:|-(16)-[UIView:0x7fccbd5286f0] (active, names: '|':UITableViewCellContentView:0x7fccbd541b10 )>",
"<NSLayoutConstraint:0x600002550730 UIView:0x7fccbd5286f0.bottom == UITableViewCellContentView:0x7fccbd541b10.bottom (active)>",
"<NSLayoutConstraint:0x6000025605a0 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0x7fccbd541b10.height == 1.19209e-07 (active)>"
и то, что «попытается восстановить, нарушив ограничение» ниже
<NSLayoutConstraint:0x600002551a40 UIView:0x7fccbd5286f0.height == 100 (active)>
<NSLayoutConstraint:0x600002550730 UIView:0x7fccbd5286f0.bottom == UITableViewCellContentView:0x7fccbd541b10.bottom (active)>
Я разбил вывод консоли на части, потому что не мог вставить все вместепо какой-то причине.
По сути, у меня есть UIView
, называемый cellView
(белый округленный угол) внутри contentView
ячейки.И все остальные элементы, которые вы видите, находятся внутри cellView
.Я применил приведенные ниже ограничения между cellView
и contentView
cellView.translatesAutoresizingMaskIntoConstraints = false
cellView.heightAnchor.constraint(equalToConstant: 100).isActive = true
cellView.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 16.0).isActive = true
cellView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor).isActive = true
cellView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 16.0).isActive = true
cellView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -16.0).isActive = true
Это сработало, когда я попытался деактивировать все ограничения в ячейке и ее подпредставлениях непосредственно перед удалением ячейки.Но, когда новые ячейки используются повторно, у них не было ограничений для активации.
Как мне справиться с этим делом?