Высота представления в моем контроллере представления должна изменяться, когда пользователь взаимодействует с приложением. Иногда представление должно быть больше по высоте, а иногда оно должно быть короче в зависимости от количества опций, которые есть у пользователя.
Я реализовал метод для изменения высоты в зависимости от состояния вида, и я вызываю этот метод в viewDidLoad
, чтобы установить начальное состояние, и я вызываю метод всякий раз, когда состояние изменяется.
Однако, единственный раз, когда представление фактически обновляет макет, это вызов из viewDidLoad
. Все остальные вызовы моего метода не обновляют представление.
func updateContainerViewHeight(constant: CGFloat) {
print("lets update")
baseView.heightAnchor.constraint(equalToConstant: constant).isActive = true
containerView.heightAnchor.constraint(equalToConstant: constant).isActive = true
self.view.setNeedsLayout()
UIView.animate(withDuration: 0.25) {
self.view.layoutIfNeeded()
}
}
FYI print("let's update")
печатает в консоли.