美文网首页iOS 技巧
使用Masonry实现两个label内容单行显示过长,省略号显示

使用Masonry实现两个label内容单行显示过长,省略号显示

作者: MCUS | 来源:发表于2018-07-12 18:54 被阅读0次

    实现目标:

    有_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内容单行显示过长,省略号显示

        本文链接:https://www.haomeiwen.com/subject/sqqweftx.html