我需要显示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]];
答案 0 :(得分:0)
如果您希望某些视图具有相同的宽度,则无论它们之间的距离如何。您应该使用spacer视图的概念。有关Spacer视图的更多信息,请参阅Apple文档。我认为spacer是最好的方法。使用垫片时,需要将约束应用于间隔视图,这将导致标签的宽度相等。