iOS开发笔记 | 并排的两个label如何优先让其中一个宽度自适应?

本文转自:http://www.jianshu.com/p/de470dca664a


这是最近做项目时遇到的需求,这里记录一下。

如下,左右两个label,需求是优先左边的label宽度自适应,然后右边的label紧挨左边label并且高度自适应。

当右边label的内容较少时是这样的:



当右边label的内容较多时是这样的:



如果我们只设置约束:

[label1 mas_makeConstraints:^(MASConstraintMaker *make) {

make.left.mas_equalTo(0);

make.top.mas_equalTo(400);

make.height.mas_equalTo(18);

}];

[label2 mas_makeConstraints:^(MASConstraintMaker *make) {

make.left.mas_equalTo(label1.mas_right);

make.top.mas_equalTo(label1);

make.right.mas_offset(0);

}];

效果是这样的:



显然不满足需求。

为了优先让左边的label宽度自适应,我们可以设定:左边的label不准扯长。也就是:

// 水平方向别扯我

[label1 setContentHuggingPriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal];

setContentHuggingPriority可以通俗理解成“别扯我”的优先级,优先级越高,越不能被扯长。

作者:无夜之星辰

链接:http://www.jianshu.com/p/de470dca664a

來源:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(iOS开发笔记 | 并排的两个label如何优先让其中一个宽度自适应?)