更新 UIStackView 内部视图的高度约束

Ale*_*son 1 height constraints dynamic stackview swift

目前,我设置了稍后添加到堆栈视图中的视图之一的高度和宽度约束,如下所示:(供您参考,productsTable 是 UITableView。)

    productsTable.heightAnchor.constraintEqualToConstant(tableHeight).active = true
    productsTable.widthAnchor.constraintEqualToConstant(stackWidth).active = true
    stackView.insertArrangedSubview(productsTable, atIndex: productsTableIndex)
Run Code Online (Sandbox Code Playgroud)

稍后,在 ViewWillAppear 中,我想更改 productsTable 高度,如下所示:

productsTable.heightAnchor.constraintEqualToConstant(newHeight).active = true.
Run Code Online (Sandbox Code Playgroud)

尽管如此,在(更改/更新)ViewWillAppear 中的约束后,表视图仍保持相同的大小。我是否做错了什么或可以采取不同的措施来达到预期的效果?

小智 5

您需要保留对第一次创建的高度约束的引用。

let heightConstraint = productsTable.heightAnchor.constraintEqualToConstant(tableHeight)
heightConstraint.active = true
Run Code Online (Sandbox Code Playgroud)

稍后,在 viewWillAppear() 中,您将能够直接将此约束的常量属性设置为 newHeight。

heightConstraint.constant = newHeight
Run Code Online (Sandbox Code Playgroud)