У меня есть ViewController, содержимое которого находится в верхней трети, а затем UIContainerView в двух нижних частях представления.UIContainerView позволяет пользователю переключаться между тремя childViewControllers.Используя AutoLayout, я ограничил UIContainerView сторонами экрана (widthAnchor), нижней частью экрана (bottomAnchor) и двумя третями пути вверх по экрану (topAnchor).
При размещении содержимого в первом childViewController, который появляется при начальной загрузке родительского ViewController, я столкнулся с трудностями.Похоже, что при этой начальной загрузке представлению childViewController присваивается view.frame.height, равный высоте устройства.Я установил свои ограничения, чтобы справиться с этим, и первый экран отображается нормально.
Проблема, с которой я сейчас сталкиваюсь, заключается в том, что когда я поворачиваюсь через childViewControllers, view.frame.height устанавливается на высоту ContainerView (что, я подозреваю, имеет место с самого начала),Это приводит к тому, что ограничения в первом childViewController «ломаются».
Посмотрите на это поведение ниже.
Изображение # 1: Начальная загрузка ParentViewController.
https://roryent.box.com/s/xhil4wk0ga5qoddhko5jxj3a1r4103h3
Изображение # 2: Переключение childViewController.
https://roryent.box.com/s/9f2jj0l1waui3ekyplq4eae51m6wrqn5
Изображение # 3: Возвращение к начальному childViewController.Ограничения «работают», но реагируют на другой view.frame.height.
https://roryent.box.com/s/cj9ffyy3m9oh8f523l2vsdezo1frk12x
ПРИМЕЧАНИЕ. Я создаю ограничения в классе ChildViewController и пытаюсь использовать фреймэтот кадр childViewController для этого.
Я попытался переместить методы для ограничения элементов в willLayoutSubviews () в childViewController без изменений.
Я подозреваю, что что-то не так с тем, куда я загружаю различные элементы.
Я бы ожидал, что self.view.frame.height, используемый в коде childViewController, отражает высоту UIContainerView.это показывает это.В моем случае высота должна быть 0,67 * UIScreen.Main.Bounds.Height.