UIScreen.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
}
我使用了四个约束出口,成功实现了这个条件。
考虑将L1和L2分别作为firstLabel和secondLabel水平放置 从L1到superview添加前导空间 从L1到superview添加顶部空间 为L1添加高度>=someValue 为L1添加trailing space,值>=someValue,优先级为999 从L2到L1的leading添加前导空间,给予较低优先级并进行nsconstraint输出连接 从L2到L1添加水平空间,给予较低优先级并进行nsconstraint输出连接 从L2对齐到L1,给予较低优先级并进行nsconstraint输出连接 为L2添加垂直空间,给予较低优先级并进行nsconstraint输出连接 为L2添加高度>=someValue 为L2添加trailing space,值>=someValue,优先级为999 let firstWidth : CGFloat = (firstLabel?.intrinsicContentSize.width)! let secondWidth : CGFloat = (secondLabel?.intrinsicContentSize.width)!