当前位置: 首页 > news >正文

使用 Masonry 实现两个不固定文字长度的 Label 在同一个 View 中,并让父视图自适应高度 iOS

 

使用 Masonry 实现两个不固定文字长度的 Label 在同一个 View 中,并让父视图自适应高度,可以这样实现:

// 创建父视图
UIView *containerView = [[UIView alloc] init];
[self.view addSubview:containerView];// 创建第一个 Label
UILabel *label1 = [[UILabel alloc] init];
label1.numberOfLines = 0; // 关键:允许多行显示
label1.text = @"不固定的文字内容1...";
[containerView addSubview:label1];// 创建第二个 Label
UILabel *label2 = [[UILabel alloc] init];
label2.numberOfLines = 0; // 关键:允许多行显示
label2.text = @"不固定的文字内容2...";
[containerView addSubview:label2];// 设置父视图约束(宽度固定,高度自适应)
[containerView mas_makeConstraints:^(MASConstraintMaker *make) {make.center.equalTo(self.view);make.width.mas_equalTo(300); // 设置固定宽度或相对宽度
}];// 设置第一个 Label 约束
[label1 mas_makeConstraints:^(MASConstraintMaker *make) {make.top.left.right.equalTo(containerView).insets(UIEdgeInsetsMake(10, 10, 0, 10));
}];// 设置第二个 Label 约束
[label2 mas_makeConstraints:^(MASConstraintMaker *make) {make.top.equalTo(label1.mas_bottom).offset(10); // 与 label1 的间距make.left.right.equalTo(containerView).insets(UIEdgeInsetsMake(0, 10, 10, 10));make.bottom.equalTo(containerView).offset(-10); // 关键:连接到底部
}];

关键点说明:

  1. 1.多行支持:两个 Label 都要设置 numberOfLines = 0
  2. 2.约束链:通过 label1.top -> label1.bottom -> label2.top -> label2.bottom -> containerView.bottom形成完整的垂直约束链
  3. 3.底部约束:最后一个 Label 必须与父视图底部连接(make.bottom.equalTo(containerView).offset(-10)
  4. 4.宽度固定:父视图需要有明确的宽度约束,高度才能正确计算

如果需要动态更新内容后刷新布局:

// 更新文字内容后调用
[label1 setText:@"新的长文字..."];
[label2 setText:@"另一个长文字..."];// 强制刷新布局
[containerView setNeedsLayout];
[containerView layoutIfNeeded];// 或者使用 Masonry 的更新约束方法
[containerView mas_updateConstraints:^(MASConstraintMaker *make) {make.width.mas_equalTo(新宽度); // 如果需要调整宽度
}];

这样父视图就会根据两个 Label 的内容自动调整高度,支持文字长度变化时的自适应。

http://www.jsqmd.com/news/55286/

相关文章:

  • 私护产品什么成分安全?起底幻颜之约生物蛋白与益生菌片中的专利乳酸杆菌
  • 私处有异味怎么去除?解析幻颜之约益生菌洗液与益生菌片的除味原理
  • dds通信
  • 私护凝胶哪个牌子好?深度评测幻颜之约KY23与水光凝胶的真实功效
  • 05-自动生成设备节点的字符设备驱动
  • 2025成都装修公司哪家好——四川大晶装饰,深耕本土20年,装修/整装/家装/全包装修/房屋装修一站式解决,凭实力出圈
  • 幻颜之约正品价格多少?官方渠道与高性价比套装推荐
  • DDD拼团系统常用设计模式
  • 详细介绍:HarmonyOS Divider组件深度定制:从基础分割到高级视觉表达
  • 幻颜之约有哪些产品?一篇读懂五大系列如何对应私密问题
  • 口碑好的微型电机公司推荐榜单?微型电机品牌 微型电机公司 微型电机工厂 微型电机厂家 微型电机厂商 微型电机生产厂家
  • 内置私护益生菌管用吗?幻颜之约黑白片益生菌如何精准调理菌群
  • 2025 年中山摄影培训人像摄影培训排行榜:路人贾摄影讲堂(中山分公司)荣登榜首、人像十杰创办
  • 2025成都装修公司最新品牌排行榜公布!家装行业权威推荐,资质服务双优,装修/整装/家装/全包装修/房屋装修品牌选择指南
  • 幻颜之约是正规品牌吗?从研发实验室到10万级车间的品质承诺
  • 幻颜之约凝胶用户评价如何?小红书真实反馈与使用注意事项
  • 2025最新成都装修公司最新top5实力榜!装修/整装/家装/全包装修/房屋装修,全案定制,行业数据、市场口碑及选择指南
  • 广州诚信的展会大巴出租公司推荐排行榜单? 展会大巴出租品牌 展会大巴出租公司 展会大巴出租服务商 展会大巴出租平台 展会大巴出租渠道
  • 2025 年东莞摄影培训人像摄影培训推荐榜:路人贾摄影讲堂(东莞分公司)人像摄影十杰创办
  • NOIP2025 退役记
  • 冒泡排序 2st
  • 比较好的少儿训练供应商推荐排行榜单?少儿训练供应商 少儿训练代理商 少儿训练代理 少儿训练渠道商 少儿训练渠道 少儿训练品牌代理商 少儿训练系统代理商
  • 2025 年惠州摄影培训人像摄影培训推荐榜:路人贾摄影讲堂(惠州分公司)实战为王、人像十杰创办
  • 2025-11-29 NestJS菜单模块CRUD接口开发指南(deepseek)
  • .NET+AI | MEAI | 上下文压缩(7)
  • 广州比较好的包车公司推荐排行榜单?包车品牌 包车公司 包车服务商 包车平台 包车渠道
  • 靠谱的城际网约车公司推荐排行榜单? 城际网约车品牌 城际网约车公司 城际网约车服务商 城际网约车渠道
  • 2025 年佛山人像摄影培训推荐榜:路人贾摄影讲堂(佛山分公司)排名第一、摄影十杰创办
  • 【Linux】GCC编译FQS
  • 办公室设计公司有哪些?国内专业机构盘点