我试图了解使用内在内容大小的动态布局的基本.如图所示,我有两个水平的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.