首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIContainerView中的ChildViewController在初始加载时的高度错误

UIContainerView中的ChildViewController在初始加载时的高度错误
EN

Stack Overflow用户
提问于 2019-02-14 22:34:47
回答 1查看 38关注 0票数 0

我有一个ViewController,它的内容在视图的顶部三分之一,然后UIContainerView在视图的底部三分之二。UIContainerView允许用户在三个childViewControllers之间旋转。使用AutoLayout,我将UIContainerView限制在屏幕的侧面(widthAnchor)、屏幕底部(bottomAnchor)和屏幕上方三分之二的位置(topAnchor)。

在布局第一个childViewController中的内容时,我遇到了困难。似乎在初始加载时,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框架的框架来完成此操作。

我尝试将约束项的方法原封不动地移到childViewController中的willLayoutSubviews()中。

我怀疑我加载不同项目的位置有问题。

我希望childViewController代码中使用的self.view.frame.height反映显示它的UIContainerView的高度。在我的例子中,高度应该是.67 * UIScreen.Main.Bounds.Height。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-17 03:14:21

我相信这个问题是由于我实现了ContainerView及其对应的childViewControllers。

我已经按照本教程重新构建了功能,并且没有任何问题。https://cocoacasts.com/managing-view-controllers-with-container-view-controllers/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54692863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档