Я пытаюсь анимировать табличное представление, чтобы оно выглядело как раскрывающееся меню, и оно выглядит нормально (хотя я предпочитаю, если оно отображается сверху вниз, в настоящее время из середины), проблема заключается в том, что я нажимаю кнопку, чтобы закрыть ее снова скачки табличного представления затем исчезают, после чего нажатие кнопки вообще ничего не делает. Я получаю ошибки ограничения после повторного нажатия кнопки.
Это то, что вызывается при нажатии кнопки:
let height: CGFloat = tableViewOpen ? 0 : 300
UIViewPropertyAnimator(duration: 0.5, curve: .linear, animations: {
self.tableView.set(height: height)
self.tableView.layoutIfNeeded()
}).startAnimation()
tableViewOpen = !tableViewOpen
Мои ограничения для tableView установлены с использованием некоторых расширений от компании, в которой я работаю, но выглядят так:
tableView.pin(.top, to: .bottom, of: breedButton)
tableView.pin(toSuperview: [.leading, .trailing])
tableView.set(width: 250)
Подробнее - табличное представление находится в дочернем контроллере представления, который является просто кнопкой породы и табличным представлением. Ограничения дочерних viewcontrollers устанавливаются следующим образом:
filterViewController.view.pin(.top, to: .top, of: titleLabel)
filterViewController.view.pin(toSuperview: .leading)
filterViewController.view.set(width: 250)
Не задана высота для tableview или childVC, не уверен, что это проблема.
Ошибки ограничения после нажатия второй кнопки:
(
"<NSLayoutConstraint:0x600003e53a20 UITableView:0x7fe090829000.height == 300 (active)>",
"<NSLayoutConstraint:0x600003e2c050 UITableView:0x7fe090829000.height == 0 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x600003e53a20 UITableView:0x7fe090829000.height == 300 (active)>