水平布局与垂直布局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];

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

Post Author: menglingfeng

发表评论

电子邮件地址不会被公开。 必填项已用*标注

You may also like

iOS OC语言copy修饰符实现原理

前言 在经过频繁的业

iOS7之后的导航栏与控制器原点坐标问题

简单记录关于iOS7

iOS Extension App 问题总结

iOS extens

%d bloggers like this: