iOS 自动布局 UILabel 换行
Posted
技术标签:
【中文标题】iOS 自动布局 UILabel 换行【英文标题】:iOS Auto-Layout UILabel wrapping 【发布时间】:2017-01-05 14:55:02 【问题描述】:我正试图让我的字幕标签换行,但它总是保留一行,并带有截断的文本。我有它,所以字幕对标题/登录标签有 5px 的顶部约束,对分隔符有 20px 的顶部约束。
我一直在研究 Content Hugging 和 Compression Resistance 但我无法弄清楚。
如果我删除底部约束,标签会根据需要变为 3 行,但会与分隔符重叠(即内容不会被下推)。
任何帮助将不胜感激。
【问题讨论】:
属性检查器中有哪些行数和换行样式? 我有 "numberOfLines = 0" && "line break style = Truncate Tail" 您需要将换行样式更改为自动换行 将其更改为自动换行仍显示为 1 行,内容未下推,标签的其余部分(即第 2-3 行)被剪裁 它被推下,但你不会看到它,因为约束的优先级大于标签的内容拥抱优先级,并且标签的框架保持不变。 【参考方案1】:将行设置为 0。然后放大标签以适应所需的代码行,即增加故事板上标签的高度。然后将 pin 菜单中标签的高度约束设置为该高度。
【讨论】:
由于视图非常复杂(即有很多元素),这需要我将所有内容向下移动...是/否? 让底部约束保持原样,只需将高度设置为容纳 3 行,例如将其设置为 60,然后单击更新帧 标记为正确答案,因为它可能是其他不知道numberOfLines
的人的解决方案。不过,我确实在我的场景中设置了它。 #RestartXcode【参考方案2】:
所以,自动更新我的项目设置并重新启动 Xcode/Simulator 与它有关!
现在似乎一切正常(字幕设置如下):
内容拥抱已设置为:h=251 & v=251
内容压缩阻力已设置为:h=750 & v=750
行数已设置为:0
换行模式已设置为:Truncate Tail
“底部空间到分隔符”约束已设置为:等于 20
“登录标签的顶部空间”约束已设置为:等于 5
【讨论】:
以上是关于iOS 自动布局 UILabel 换行的主要内容,如果未能解决你的问题,请参考以下文章