Autolayout,3个标签宽度相等

时间:2015-06-01 07:17:40

标签: ios ios-autolayout

我需要显示3个这样的标签:" | -15- [Label1] -0- [Label2] -0- [Label3] -15 |"。label1,label2,label3应该具有相同的宽度。如何使用带编码的自动布局来实现这一点。任何建议都表示赞赏。

我已尝试过如下操作,但我在标题视图中看不到任何内容。

NSDictionary *views2 = NSDictionaryOfVariableBindings(label1, label2, label3);

[headerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-leftPadding-[label1]-0-[label2]-0-[label3]-rightPadding-|" options:0 metrics:@{@"leftPadding":[NSNumber numberWithInt:15],@"rightPadding":[NSNumber numberWithInt:15]} views:views2]];

[headerView addConstraint:[NSLayoutConstraint constraintWithItem:label1
                                                       attribute:NSLayoutAttributeWidth
                                                       relatedBy:NSLayoutRelationEqual
                                                          toItem:label2
                                                       attribute:NSLayoutAttributeWidth
                                                      multiplier:1
                                                        constant:0]];

[headerView addConstraint:[NSLayoutConstraint constraintWithItem:label1
                                                       attribute:NSLayoutAttributeWidth
                                                       relatedBy:NSLayoutRelationEqual
                                                          toItem:label3
                                                       attribute:NSLayoutAttributeWidth
                                                      multiplier:1
                                                        constant:0]];

[headerView addConstraint:[NSLayoutConstraint constraintWithItem:label2
                                                       attribute:NSLayoutAttributeWidth
                                                       relatedBy:NSLayoutRelationEqual
                                                          toItem:label3
                                                       attribute:NSLayoutAttributeWidth
                                                      multiplier:1
                                                        constant:0]];


[headerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[label1]|" options:0 metrics:nil views:views2]];
[headerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[label2]|" options:0 metrics:nil views:views2]];
[headerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[label3]|" options:0 metrics:nil views:views2]];

1 个答案:

答案 0 :(得分:0)

如果您希望某些视图具有相同的宽度,则无论它们之间的距离如何。您应该使用spacer视图的概念。有关Spacer视图的更多信息,请参阅Apple文档。我认为spacer是最好的方法。使用垫片时,需要将约束应用于间隔视图,这将导致标签的宽度相等。

相关问题