自动布局约束未正确放置容器视图

Posted

技术标签:

【中文标题】自动布局约束未正确放置容器视图【英文标题】:autolayout constraints not placing container view properly 【发布时间】:2013-06-18 19:55:20 【问题描述】:

第一张图片显示了底部容器视图的约束。 “超级视图的底部空间”设置为 0。无论屏幕高度如何,我都希望容器锚定到屏幕底部。

我不想限制从底部容器视图到屏幕顶部的距离,但是 Xcode 会自动创建一个(到超级视图的顶部空间 = 508)并且不会让我删除它。为什么这样做?我的容器视图的位置完全由其他 3 个约束及其高度(60 像素)定义。

更重要的是,当我运行应用程序时,容器视图不适合屏幕。它被部分切断。即使“bottom space to superview”被限制为0,容器视图的底部也被切断了。这是怎么回事?

【问题讨论】:

【参考方案1】:

有两件事正在发生。首先,您的容器视图的高度已设置,但未固定,因此自动布局强制顶部空间设置为超级视图。你需要固定它的高度,然后你可以删除顶部空间,这个问题应该会消失。

其次,顶部的状态栏迫使您的视图向下 20 像素,这会将其底部推离屏幕。对此有多种修复方法,但我确信现在您知道问题所在,您会想出一个。

【讨论】:

以上是关于自动布局约束未正确放置容器视图的主要内容,如果未能解决你的问题,请参考以下文章

具有自动布局的 iOS UIScrollView 未正确居中

在视图中自动布局视图

Xcode 6 不遵守自动布局约束

Xcode 自动布局故事板预览不显示容器视图

故事板自动布局将视图放置在表格单元格中,并将尾随到超级视图约束固定到最左侧

容器视图内的 UIPageViewController 内的堆栈视图的自动布局?