将视图添加到视图控制器并使用自动布局通过旋转完全覆盖它的正确方法是啥?

Posted

技术标签:

【中文标题】将视图添加到视图控制器并使用自动布局通过旋转完全覆盖它的正确方法是啥?【英文标题】:What is the proper way to add a view to a view controller and make it cover it completely through rotations using Auto Layout?将视图添加到视图控制器并使用自动布局通过旋转完全覆盖它的正确方法是什么? 【发布时间】:2014-06-17 06:19:23 【问题描述】:

假设我有一个UIViewController,我想在它上面添加一个红色的UIView,使用自动布局完全覆盖它的view

我的第一直觉是将它固定到视图控制器视图的每个边缘,但由于 ios 7 的视图控制器视图在导航栏下方延伸的性质,将其固定为 0 不会将其置于导航栏。如果我把 -64 放在纵向覆盖它,这不是横向的正确常数,因为导航栏更短。

我应该如何实现这个?

【问题讨论】:

【参考方案1】:

确保您的视图被固定到超级视图的顶部,而不是顶部布局指南。听起来它目前已固定在顶部布局指南中。

如果固定到顶部布局指南,修复它的最佳方法是删除约束,选择视图,单击IB右下角的“固定”工具,然后选择顶部带有设置零。

这在 Xcode 5.1.1 中运行良好,但在早期版本中存在一些问题。 Control+Drag 到视图上通常会强制您选择顶部布局指南而不是视图顶部。

【讨论】:

以上是关于将视图添加到视图控制器并使用自动布局通过旋转完全覆盖它的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

UISearchDisplayController 没有完全覆盖子视图控制器

视图控制器和自动布局旋转问题

任何自动布局大师能够启发我约束和旋转?

iPad 应用程序中的旋转

视图不显示和自动布局集中

使用自动布局为动画准备视图