使用Masonry实现两个label内容单行显示过长,省略号显示——两个label的挤压缩关系

实现目标:


有_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.

你可能感兴趣的:(使用Masonry实现两个label内容单行显示过长,省略号显示——两个label的挤压缩关系)