水平布局与垂直布局Label(其他带文字的视图均适用)的自适应问题
一般我们写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];
通过设置水平/垂直布局优先级就可以解决,高度也是同理,不在赘述。
Social Menu