使用NSLayoutConstraint获得与自动调整大小相同的结果

时间:2013-09-04 09:49:51

标签: ios xcode autolayout nslayoutconstraint

在我的UI中,我底部有5个按钮。自动调整应用于picutre上的每个按钮:

enter image description here

我得到了理想的结果:

enter image description here enter image description here

然而,当我尝试在IB中使用Autolayout或像这样的代码中执行此操作时:

NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(_button1, _button2, _button3, _button4, _button5);
NSArray *constraints = [NSLayoutConstraint
                                  constraintsWithVisualFormat:@"|-[_button1]-[_button2]-[_button3]-[_button4]-[_button5]-|"
                                  options:NSLayoutFormatAlignAllBaseline
                                  metrics:nil
                                  views:viewsDictionary];
[self.view addConstraints:constraints];

我明白了:

enter image description here

即使我尝试设置默认宽度,我也没有达到预期的行为。

2 个答案:

答案 0 :(得分:2)

您需要为所有按钮设置equal width约束,并通过IB在每个按钮之间设置horizontal space约束。

设置相等的高度
 *选择所有按钮
 *编辑 - > Pin - >宽度相等

希望这很有效,因为它对我有用。

答案 1 :(得分:2)

@"|-[_button1]-[_button2(==_button1)]-[_button3(==_button1)]-[_button4(==_button1)]-[_button5(==_button1)]-|"

获取所有相等宽度的按钮,尽管它们会拉伸以填充横向空间......