使用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介绍 Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布...
    木易林1阅读 7,046评论 0 3
  • Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了并具有高可读性...
    3dcc6cf93bb5阅读 5,812评论 0 1
  • iOS_autoLayout_Masonry 概述 Masonry是一个轻量级的布局框架与更好的包装AutoLay...
    指尖的跳动阅读 4,943评论 1 4
  • [置顶]iOS - Masonry使用中的一些整理 标签:iOS资源大全iOS常用方法iOS学习资料Masonry...
    DreamMakerSky阅读 8,356评论 0 4
  • Masonry是一个轻量级的布局框架,它拥有自己的描述语法(采用更优雅的链式语法封装)来自动布局,具有很好可读性且...
    AngeloD阅读 8,629评论 0 9