增加布局约束的优先级
我有一个superView
这样的label
和button
。
|--------------[Label]-----[button]-|
如果可能的话,我希望label
centred
,然后在button
上留出最小间隔,然后向左移动。
所以如果button很大,它看起来像…
|-[ LABEL! ]-[button]-|
所以,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]];
但是我不确定如何减less第二个约束的优先级。
您只需设置约束的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];