添加子视图后如何更新堆栈视图的大小(以编程方式)?

How to update the size of stackView after adding subviews (programatically)?

let innerView = UIView(frame: .init(x: 0, y: 0, width: 50, height: 50))
let outerSV = UIStackView(arrangedSubviews: [innerView])
    
outerSV.frame.width // still 0! should be 50
outerSV.frame.height // still 0! should be 50

那么问题来了:添加子视图后如何更新stackView的大小?

您应该在 stackView 的子视图上调用 sizeToFit()layoutIfNeeded()。像往常一样约束 UIStackView,并像往常一样约束子视图。

此外,您需要将其设置为按比例填充,它会调整大小以适应新内容。

并确保您在堆栈视图上没有高度约束的底部约束。您应该只需要左、右和上约束。