You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift 水平Stack View中UILabel无法按需求自适应填充宽度问题求解

解决方案

你只需要按以下步骤调整配置和约束即可实现预期效果:

1. 调整两个Label的基础属性

  • 标题Label、详情Label的numberOfLines统一设为0,lineBreakMode改为byWordWrapping(你当前配置的tailTruncation仅适用于单行截断,不支持多行显示)
  • 保持标题Label的水平Content Hugging Priority为252,详情Label的水平Content Hugging Priority为251;同时将标题Label的水平Compression Resistance Priority设为751,详情Label设为750,保证标题内容优先完整展示不会被压缩

2. 调整StackView配置

  • StackView的distribution属性设为.fill,alignment属性设为.top,避免两个Label高度不同时出现顶部不对齐的问题

3. 修正约束配置

  • 保留你已添加的「详情Label宽度 >= 标题Label宽度」约束,将该约束的优先级设为750(默认高优先级即可),不要额外添加等宽、比例类约束
  • 删除XIB中StackView到父视图trailing的冗余约束(ID为O6p-XR-VEs),仅保留StackView到safeArea的四边约束即可

动态切换布局说明

当文本过长需要切换为垂直布局时,仅需要修改StackView的axis属性为.vertical,上述所有配置和约束都不需要调整,可自动适配垂直布局下的多行文本显示。

内容的提问来源于stack exchange,提问作者ScottyBlades

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 16:24:04