我终于尝试在IB中采用自动布局,我在设置某些对象的约束时遇到问题。我基本上希望5个视图在整个superview中平均分布。我有3个按钮分隔2行。我希望间距D1,D2,D3和D4等于没有调整任何东西的高度。如何在IB中设置?
答案 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
值,使得它们均匀间隔,您可以在没有间隔视图的情况下以编程方式实现类似的效果。效果非常相似,但不完全相同。