UIContainerView 中的 ChildViewController 在初始加载时高度错误
ChildViewController in UIContainerView has wrong height on initial load
我有一个 ViewController,其内容位于视图的前三分之一,然后是 UIContainerView 位于视图底部的三分之二。 UIContainerView 允许用户在三个 childViewController 之间轮换。使用 AutoLayout,我将 UIContainerView 限制在屏幕的两侧 (widthAnchor)、屏幕底部 (bottomAnchor) 和屏幕上方三分之二的位置 (topAnchor)。
在布局内容中第一个子ViewController,里面出现了parentViewController的初始加载,我运行陷入困境。看起来在初始加载时,子视图ViewController 被赋予了一个等于设备高度的view.frame.height。我设置了我的约束来处理这个问题,第一个屏幕显示正常。
我现在 运行 遇到的问题是,当我在子 ViewController 中旋转时, view.frame.height 被设置为 ContainerView 的高度(我会从一开始就怀疑是这种情况)。这导致第一个孩子ViewController 到"break" 的约束。
看看下面的这个行为。
图片 #1:父项的初始加载ViewController。
https://roryent.box.com/s/xhil4wk0ga5qoddhko5jxj3a1r4103h3
图片 #2:切换孩子ViewController。
https://roryent.box.com/s/9f2jj0l1waui3ekyplq4eae51m6wrqn5
图片 #3:回到最初的孩子ViewController。约束 "work" 但对不同的 view.frame.height.
有反应
https://roryent.box.com/s/cj9ffyy3m9oh8f523l2vsdezo1frk12x
注意:我正在 ChildViewController class 中创建约束并尝试使用该 childViewController 框架的框架来这样做。
我试图将用于约束项目的方法移动到子 ViewController 中的 willLayoutSubviews() 中,没有任何变化。
我怀疑我加载不同项目的位置有问题。
我希望子 ViewController 代码中使用的 self.view.frame.height 反映显示它的 UIContainerView 的高度。在我的例子中,高度应该是 .67 * UIScreen.Main.Bounds.Height。
我认为问题出在我对 ContainerView 及其对应的 childViewController 的实现上。
我已经按照本教程重建了该功能,没有遇到任何问题。 https://cocoacasts.com/managing-view-controllers-with-container-view-controllers/
我有一个 ViewController,其内容位于视图的前三分之一,然后是 UIContainerView 位于视图底部的三分之二。 UIContainerView 允许用户在三个 childViewController 之间轮换。使用 AutoLayout,我将 UIContainerView 限制在屏幕的两侧 (widthAnchor)、屏幕底部 (bottomAnchor) 和屏幕上方三分之二的位置 (topAnchor)。
在布局内容中第一个子ViewController,里面出现了parentViewController的初始加载,我运行陷入困境。看起来在初始加载时,子视图ViewController 被赋予了一个等于设备高度的view.frame.height。我设置了我的约束来处理这个问题,第一个屏幕显示正常。
我现在 运行 遇到的问题是,当我在子 ViewController 中旋转时, view.frame.height 被设置为 ContainerView 的高度(我会从一开始就怀疑是这种情况)。这导致第一个孩子ViewController 到"break" 的约束。
看看下面的这个行为。
图片 #1:父项的初始加载ViewController。
https://roryent.box.com/s/xhil4wk0ga5qoddhko5jxj3a1r4103h3
图片 #2:切换孩子ViewController。
https://roryent.box.com/s/9f2jj0l1waui3ekyplq4eae51m6wrqn5
图片 #3:回到最初的孩子ViewController。约束 "work" 但对不同的 view.frame.height.
有反应https://roryent.box.com/s/cj9ffyy3m9oh8f523l2vsdezo1frk12x
注意:我正在 ChildViewController class 中创建约束并尝试使用该 childViewController 框架的框架来这样做。
我试图将用于约束项目的方法移动到子 ViewController 中的 willLayoutSubviews() 中,没有任何变化。
我怀疑我加载不同项目的位置有问题。
我希望子 ViewController 代码中使用的 self.view.frame.height 反映显示它的 UIContainerView 的高度。在我的例子中,高度应该是 .67 * UIScreen.Main.Bounds.Height。
我认为问题出在我对 ContainerView 及其对应的 childViewController 的实现上。
我已经按照本教程重建了该功能,没有遇到任何问题。 https://cocoacasts.com/managing-view-controllers-with-container-view-controllers/