Label尺寸自适应与AutoLayout问题小结

Label尺寸自适应与AutoLayout问题小结

一般我们写UILabel等控件的自适应代码为

[label mas_makeConstraints:^(MASConstraintMaker *make) {
    make.left.mas_equalTo(0);
    make.top.mas_equalTo(0);
}];

这样宽度和高度就可以自适应,但是在label的水平方向和竖直方向有其他控件的时候需要依赖label,比如两个label一左一右

[labelLeft mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.mas_equalTo(0);
        make.top.mas_equalTo(0);
 }];
    
[labelRight mas_makeConstraints:^(MASConstraintMaker *make) {
    make.left.mas_equalTo(label1.mas_right);
    make.top.mas_equalTo(0);
    make.right.mas_offset(0);
}];

实际效果出来是这样的


实际效果

想要的结果是


理想效果

左边文字的宽度会大于实际宽度, 需要设置左边的label优先自适应

[labelLeft setContentHuggingPriority:UILayoutPriorityFittingSizeLevel forAxis:UILayoutConstraintAxisHorizontal];

通过设置水平/垂直布局优先级就可以解决,高度也是同理,不在赘述。

你可能感兴趣的:(Label尺寸自适应与AutoLayout问题小结)