Xcode Autolayout - 约束等于另一个约束

时间:2013-09-12 15:32:50

标签: iphone ios xcode autolayout

我终于尝试在IB中采用自动布局,我在设置某些对象的约束时遇到问题。我基本上希望5个视图在整个superview中平均分布。我有3个按钮分隔2行。我希望间距D1,D2,D3和D4等于没有调整任何东西的高度。如何在IB中设置?

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以为D1,D2,D3和D4创建UILayoutGuide个对象(或者,对于iOS 9之前的iOS版本,UIView个对象),例如spacer1,{{1等等,然后定义它们的高度等于每个高度。在可视格式语言(VFL)中,垂直约束看起来像:

spacer2

我不知道你是如何表示你的分隔线(这里我只是使用4点高@"V:|-[button1][spacer1][separator1(4)][spacer2(==spacer1)][button2][spacer3(==spacer1)][separator2(4)][spacer4(==spacer1)][button3]-|" ,但你可以按照你想要的方式做到这一点)。但希望这说明了这个想法。

如果您在Interface Builder中执行此操作,则可以在可见控件之间添加UIView个对象,然后选择所有间隔视图(例如通过按住Shift键单击),然后添加约束以固定“高度同样”使它们的高度相同。

通过在每个按钮和分隔线的UIView属性上创建约束并调整每个按钮的NSLayoutAttributeCenterY值,使得它们均匀间隔,您可以在没有间隔视图的情况下以编程方式实现类似的效果。效果非常相似,但不完全相同。