在iOS中使用autolayout调整内容大小的UILabel

我试图了解使用内在内容大小的动态布局的基本.如图所示,我有两个水平的UILabel,这将是我的默认布局.如何使布局约束这样做

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

《在iOS中使用autolayout调整内容大小的UILabel》

最佳答案 您可以向stackView添加两个标签,并且如果使用UIScreen.main.bounds.width检查并检查intrinsicContentSize的总和,则减去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
}

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

点赞