我正在尝试使用界面构建器中的约束(自动布局)来布局屏幕设计,并希望避免编码约束,但我会接受任何一种情况的答案。
我在顶级视图中包含两个子视图。我想将第一个子视图的垂直距离固定到屏幕顶部(我能够实现这一点 - 垂直空间约束的常见用例)。我希望第二个子视图在第一个子视图的底部和屏幕底部之间的距离的中心浮动(垂直)。这个想法是,设计对iPhone 3.5“与4”尺寸的反应有所不同。
我无法定义一个约束或一组约束来完成此任务。
我尝试在第二个子视图与其邻居(第一个子视图)和超视图底部之间的垂直间距约束上设置不等式,并使用这些约束的优先级。
在SO的其他几个相关帖子中提出的想法是使用固定在屏幕底部的容器,以及固定到第一个子视图的底部边缘,然后居中我的第二个容器中的子视图。我希望尽可能避免使视图层次结构复杂化,但也许这不容易避免。
有任何想法或建议吗?
答案 0 :(得分:17)
This answer描述了如何在Xcode 6.0中执行此操作(可能适用于Xcode 5.0和5.1)。
如果要使用自动布局执行此操作,则必须至少添加一个间隔视图。它不必是垂直居中视图(或任何其他视图)的超视图,因此它对视图层次结构的影响非常小。
我建议不要在Xcode 4.6.3中尝试在Interface Builder中设置约束。这太痛苦了。但如果你真的必须,这是可行的。