我尝试使用自动布局对齐两个UILabel,其中第一个标签没有设置宽度但是使用内在内容大小,第二个标签应该与第一个相同,将文本换行到新线。
理想情况下,第二个标签应将数字行设置为0
以使用动态类型,但我暂时将其设置为2
,甚至将其设置为特定高度。然而,当我尝试对齐equal widths
或trailing
时,内在内容大小标签会扩展到多行标签的宽度,就像它在一行上一样(参见下图)。
有没有办法让我达到我想要的效果而不指定第一个标签的宽度?我希望扩展内容以考虑动态类型,并使第二个标签具有相同的宽度并将所有文本换行到新行。
答案 0 :(得分:4)
您可以在不将任何内容挂钩到代码的情况下执行此操作。此解决方案的关键点是标签的内容拥抱优先级,其大小将完全基于内在内容大小计算。
内在内容大小标签
多行标签(lorem ipsum标签)
两个标签的Xcode配置(左:内在,右:多标签)
答案 1 :(得分:0)
在layoutSubviews中,将第二个标签的preferredMaxLayoutWidth设置为第一个标签内在宽度,类似于:
secondLabel.preferredmaxlayoutwidth = firstLabel.intrinsicContentSize.width