实现目标:
有_title和_state这两个label标签 ,
当_state标签值为“你好啊”,
_title标签值为“我曾为了你付出了一切,你还是离开了我”,单行显示 这两个标签内容时,空间不足够,
这里让_state 的值完全显示,即左右宽度 不被_title 标签 挤压,_title的值过长 用“...” 省略号显示。
具体实现:
利用setContentCompressionResistancePriority方法来调节label的压缩阻力,默认压缩阻力 为750,
及_title压缩阻力为750, _state设置为751,压缩阻力大于_title的750,所以_state可以完全显示内容。
[self.contentView addSubview:_state];
[_title mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.lessThanOrEqualTo(self.state.mas_left);
make.left.mas_equalTo(19);
make.top.mas_equalTo(16 );
make.height.mas_equalTo(18);
}];
[_state setContentCompressionResistancePriority:751 forAxis:UILayoutConstraintAxisHorizontal];
[self.contentView addSubview:_state];
[_state mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.greaterThanOrEqualTo(self.title.mas_right);
make.right.mas_equalTo(-19);
make.centerY.mas_equalTo(self.title.mas_centerY);
}];
另外,还有一个相反的的方法——内容吸附力,
[_state setContentHuggingPriority:250 forAxis:UILayoutConstraintAxisVertical];
默认的值为250.
网友评论