我正在尝试使用自动布局来对齐两个UILabel,其中第一个标签没有设置宽度,而是使用内在内容大小,第二个标签应与第一个标签具有相同的宽度,同时将文本换行。理想情况下,第二个标签应该将数字行设置为0以适应动态类型,但目前我已将其设置为2甚至给它指定了特定的高度。然而,当我尝试对其进行对齐时,无论是等宽度还是靠右对齐,内在内容大小的标签都会扩展到多行标签的宽度,就像它们全部在一行上一样(请参见下面的插图)。我的要求是: 我所看到的是: 有没有办法让第一个标签在不指定宽度的情况下实现内容的扩展,以适应动态类型,并且使第二个标签具有相同的宽度并将所有文本换行?
你可以在不将任何东西连接到代码的情况下完成它。这种解决方案的关键点是标签的内容吸附优先级,其大小将完全基于内在内容大小计算。 内在内容大小标签 将水平内容吸附优先级设置为必需(1000) 多行标签(lorem ipsum标签) 将前导对齐到内在内容大小标签 将尾随对齐到内在内容大小标签 两个标签的Xcode配置(左:内在内容大小标签,右:多行标签)
在layoutSubviews方法中,将第二个标签的preferredMaxLayoutWidth设置为第一个标签的内在宽度,类似于这样:secondLabel.preferredmaxlayoutwidth = firstLabel.intrinsicContentSize.width