在 iOS 中使用自动布局调整内容大小的 UILabel

Nas*_*sif 5 uilabel ios autolayout

我试图了解使用内在内容大小的动态布局的基础。如图所示,我有两个水平的 UILabel,这将是我的默认布局。如何进行布局约束,以便

  • 如果两个标签中任何一个的内容大小大于另一个,则应垂直堆叠排列。
  • 此外,如果两个标签内容大小中的任何一个大于一行,我们如何使文本增长满足垂直排列

自动布局

Age*_*ith 1

您可以将两个标签添加到 stackView 中,然后检查intrinsicContentSizeUIScreen.main.bounds.width的总和减去 stackView 左右边距。

if (label1.intrinsicContentSize.width + label2.intrinsicContentSize.width) > (UIScreen.main.bounds.width - 48/* 48 is the left and right margins*/) {
     stackView.axis = .vertical
}else {
     stackView.axis = .horizontal
}
Run Code Online (Sandbox Code Playgroud)

请记住将标签的 numberOfLines 设置为 0。