我在label
中有button
和superView
。
|--------------[Label]-----[button]-|
如果可能,我希望label
为centred
,然后与button
保持最小间隙并向左移动。
因此,如果按钮很大,它看起来像......
|-[ LABEL! ]-[button]-|
因此,按钮保持原样并且大小相同。并且元素之间存在最小间隙。
我可以添加centerX
约束,但我似乎无法优先考虑它,因此它仍为Required
。
我该如何创造这种情况?我在代码中进行所有自动布局。
我目前的限制是......
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|-[_label]-(>=8@1000)-[_button(==45)]-|"
options:NSLayoutFormatAlignAllCenterY
metrics:nil
views:views]];
[self addConstraint:[NSLayoutConstraint constraintWithItem:_label
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self.contentView
attribute:NSLayoutAttributeCenterX
multiplier:1.0
constant:0.0]];
但我不确定如何降低第二个约束的优先级。
答案 0 :(得分:36)
您只需设置约束的priority
属性,如下所示:
NSLayoutConstraint *centeringConstraint =
[NSLayoutConstraint constraintWithItem:_label
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self.contentView
attribute:NSLayoutAttributeCenterX
multiplier:1.0
constant:0.0];
centeringConstraint.priority = 800; // <-- this line
[self addConstraint:centeringConstraint];