Используя Xcode 10, iOS 11.4+, Swift 4
У меня есть серия контроллеров UIViewController, через которые я перемещаюсь, каждый из которых помещается в ContainerView.
В зависимости от того, какой VC нажат, я скрываю / показываю виды сверху или снизу (показаны серым цветом) в главном контроллере, в то время как ContainerView всегда находится посередине (светло-голубой).
То, что я хотел бы сделать, это установить ограничения таким образом, чтобы ContainerView подходящего размера при отображении / скрытии видов сверху или снизу.
Например, когда «Главное меню»Показано, что ContainerView должен заполнять весь вид Main Container (вид сверху и снизу будут скрыты)
Когда отображается «Item1», вид сверху отображается, а вид снизу скрыт.Следовательно, ContainerView должен заполнять основной контейнерный вид слева, справа и снизу, но сверху ContainerView необходимо ограничить нижний вид сверху.
Когда отображается «Item5», вид сверху и снизу также будетпоказано на рисунке.Поэтому ContainerView должен заполнять представление основного контейнера влево, вправо и быть ограниченным снизу вида сверху и верхом вида снизу (как показано в главном контейнере)
Я пытался использовать подобный код для заполнениявесь основной вид:
NSLayoutConstraint.activate([
ContainerView.leftAnchor.constraint(equalTo: self.view.leftAnchor, constant: 0),
ContainerView.rightAnchor.constraint(equalTo: self.view.rightAnchor, constant: 0),
ContainerView.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 0),
ContainerView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor, constant: 0)
])
Однако ContainerView никогда не меняется, и Xcode выдает мне много предупреждений, таких как:
[LayoutConstraints] Невозможно одновременно удовлетворить ограничения.Возможно, по крайней мере одно из ограничений в следующем списке - это то, что вам не нужно.
Вот еще один скриншот из раскадровки:
Вот ссылка для загрузки моего примера проекта: https://gitlab.com/whoit/containerviews
Как правильно изменить ограничения для достижения этой цели?