Stack View 大小变化无法可视化

Stack View size change cannot be visualized

在一个基本上使用所有屏幕的常规 UIView 中 space 我放置了一个垂直和水平对齐的 Stack View,以及一个约束,使得里面的图像具有相同的大小。

因此,我期望一旦整个 Stack View 的大小发生变化,它仍将居中并且所有图像将具有相同的大小。事实上,如果我添加一个约束来设置它的高度,一切都会很漂亮。

当我想以编程方式设置此高度而不是作为约束时,问题就来了。为此,我只是这样做:

print(myStackview.frame.size)
myStackview.frame.size.height = 400
print(myStackview.frame.size)

从用户的角度来看,Stackview 绝对没有任何变化,但事实上,当我打印它的大小时,尺寸是不同的,它似乎可以工作。

我在 viewDidLoad 和 viewDidLayourSubviews 中写了这行,但没有任何反应。它可以是什么?

不要更改堆栈视图的框架。向堆栈视图添加高度约束并更改它的常量。 您可以通过编程方式更改约束的常量值:

let heightConstraint = heightAnchor.constraint(equalToConstant: 200)
heightConstraint.isActive = true

//later in code
heightConstraint.constant = 400