【发布时间】:2017-09-05 17:58:37
【问题描述】:
我在第二个和后续布局中得到一个 frame = (-335 -560; 375 608),其中原点变为负数 (-335,-560)。这会导致视图被画出屏幕。这个视图是 UIViewController 的根视图。该视图由 10 个垂直约束的子视图组成,就像在垂直轴堆栈视图中一样。我将最高子视图的顶部锚点约束到该视图的顶部锚点。
我不知道如何将此视图的顶部锚点限制在 (0,0) 原点。我做错了什么?
【问题讨论】:
-
除非你用自定义容器视图控制器做一些非常奇怪的事情,否则你的视图控制器的框架应该由它的父视图控制器控制(如果你的视图控制器是窗口的根视图控制器,它应该具有与窗口相同的框架)。如果您的视图控制器的原点变为负数,请查看父级。你的父视图控制器是什么?
-
根视图控制器是一个UINavigationController,它是这个视图控制器的父级。当我推送一个视图控制器,然后弹出它时,我的视图会得到这个奇怪的框架。
-
还有一件奇怪的事情:在新的视图控制器出现之前,我可以看到我的旧视图改变了它的框架。
-
您是否在 Storyboard / IB 中展示您的观点?还是您通过代码添加“10 个垂直约束的子视图”?
-
以编程方式 - 我必须这样做,因为视图数量是动态的。但是,第一次正确布局子视图。
标签: ios uiview uikit ios-autolayout