Ios 使用Autolayout和Interface Builder垂直扩展/间隔屏幕元素

Ios 使用Autolayout和Interface Builder垂直扩展/间隔屏幕元素,ios,interface-builder,xcode5,autolayout,uistoryboard,Ios,Interface Builder,Xcode5,Autolayout,Uistoryboard,我有一个相对简单的只有肖像的用户界面,在故事板中布局,其中的项目我想垂直分布,以填充3.5英寸和4英寸的屏幕 换句话说,我希望调整控件之间的间距,以便UI能够很好地填充屏幕,而不考虑屏幕的形状因素 这似乎不是一件不寻常的事情,但是我无法让Interface Builder(在Xcode 5中)添加正确的约束-我似乎只能让它添加固定的垂直空间约束,这些约束不会针对不同的屏幕大小进行调整 有人知道如何在不借助编程UI构造的情况下实现这一点吗?我已经投入了大量的精力,使基于故事板的用户界面恰到好处 该

我有一个相对简单的只有肖像的用户界面,在故事板中布局,其中的项目我想垂直分布,以填充3.5英寸和4英寸的屏幕

换句话说,我希望调整控件之间的间距,以便UI能够很好地填充屏幕,而不考虑屏幕的形状因素

这似乎不是一件不寻常的事情,但是我无法让Interface Builder(在Xcode 5中)添加正确的约束-我似乎只能让它添加固定的垂直空间约束,这些约束不会针对不同的屏幕大小进行调整

有人知道如何在不借助编程UI构造的情况下实现这一点吗?我已经投入了大量的精力,使基于故事板的用户界面恰到好处


该解决方案需要在iOS 6和iOS 7上运行。谢谢

如何做到这一点取决于当屏幕大小发生变化时,您希望进行何种调整。一种方法是分别向superview的顶部和底部提供最顶部和最底部视图的垂直间距约束。添加一个视图,我通常在垂直堆叠的所有视图之间使用一个没有文本的UILabel,并使它们彼此具有相等的高度。为其中一个“间隔”视图指定一个固定高度,但对其进行编辑,使其优先级小于1000(这意味着不强制满足该优先级)。然后,在每个“真实”视图上方和下方的每个最近邻居与“间隔器”之间添加间距约束,以便通过垂直间距约束将所有视图从上到下连接在一起。当屏幕大小改变时,唯一可以改变的是“间隔器”的高度,因为优先级小于1000,并且所有其他约束都是强制性的。我的约束如下所示:


每个标签上下的“真实”视图都有标准(8点)间距。俯视图和俯视图与屏幕边缘之间的间距应该是任意的。

如何做到这一点,取决于屏幕大小改变时需要进行何种调整。一种方法是分别向superview的顶部和底部提供最顶部和最底部视图的垂直间距约束。添加一个视图,我通常在垂直堆叠的所有视图之间使用一个没有文本的UILabel,并使它们彼此具有相等的高度。为其中一个“间隔”视图指定一个固定高度,但对其进行编辑,使其优先级小于1000(这意味着不强制满足该优先级)。然后,在每个“真实”视图上方和下方的每个最近邻居与“间隔器”之间添加间距约束,以便通过垂直间距约束将所有视图从上到下连接在一起。当屏幕大小改变时,唯一可以改变的是“间隔器”的高度,因为优先级小于1000,并且所有其他约束都是强制性的。我的约束如下所示:


每个标签上下的“真实”视图都有标准(8点)间距。顶视图和底视图应该与屏幕边缘有任意间距。

苹果现在发布了一份文档,描述了官方认可的解决此问题的方法:


方法概述:在具有相同宽度/高度(如适用)约束的控件之间插入间隔视图。

苹果现在发布了一份文档,描述了官方认可的解决此问题的方法:


方法概述:在控件之间插入间隔视图,这些控件具有相同的宽度/高度(如适用)约束。

是否有两个以上的控件垂直堆叠并展开?是否有两个以上的控件垂直堆叠并展开?将间隔视图的优先级设置为1000以下是拼图中缺少的部分-感谢您的帮助!将间隔视图的优先级设置为1000以下是拼图中缺少的部分-感谢您的帮助!