约束文本字段,使它们之间有均匀的空间并填充整个屏幕

时间:2015-08-20 07:37:10

标签: ios cocoa-touch autolayout nslayoutconstraint

我正在构建一个应该可以在任何运行iOS8 +的iOS设备上运行的应用程序。问题是,这意味着我必须支持许多不同的屏幕尺寸。对于UITableView来说这很容易,但是我在使用注册视图时遇到了一些麻烦。以下是它现在的样子:

非常基本的东西;我基本上只有一个“添加照片”按钮,它被限制在顶部布局指南,下面是一堆文本字段,以及一个限制在底部布局指南的“注册”按钮。我想要做的是将所有文本字段均匀地从“添加照片按钮”分发到“注册”按钮,以便最大限度地利用屏幕空间。如:我希望所有文本字段都水平居中,并且它们之间有均匀的空间。

困难的部分是空间未指定,因为它会根据设备的大小而有所不同。

有办法做到这一点吗?某种规则告诉文本字段在其顶部和底部邻居之间保持均匀的空间?我现在能做的最好的事情是我已经将所有文本字段限制在固定距离的“添加照片”按钮,并将“注册”按钮限制在底部,这样,对于更大的屏幕,我将拥有大部分集中在顶部的内容和底部的“注册”按钮,对于最小的屏幕(iPhone 4 / 4S),内容看起来均匀分布(应该是),因为“注册”按钮被按下向上,顶部的整个物体集群被向下推。显然,这不是一个非常理想的解决方案。

我更喜欢通过故事板进行设置,但是必须在代码中进行设置就可以了。

1 个答案:

答案 0 :(得分:0)

创建这些空间的方法是在文本字段之间添加透明视图。这些透明视图将具有文本字段的约束0(顶部和底部)以及UIImageView和SignUp按钮。如果您在文本字段之间创建并定位了所有这些透明视图,则需要选择所有这些视图(透明视图)并添加约束" Equal Heights"。现在,所有元素之间的空间在所有屏幕中都是相同的。

您可以在https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/AutoLayoutbyExample/AutoLayoutbyExample.html#//apple_ref/doc/uid/TP40010853-CH5-SW8

中找到更多信息