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

时间:2016-03-01 19:22:18

标签: swift dynamic height constraints stackview

目前,我设置了我的一个视图的高度和宽度限制,我稍后将其添加到堆栈视图中,如下所示:(有关您的信息,productsTable是一个UITableView。)

    productsTable.heightAnchor.constraintEqualToConstant(tableHeight).active = true
    productsTable.widthAnchor.constraintEqualToConstant(stackWidth).active = true
    stackView.insertArrangedSubview(productsTable, atIndex: productsTableIndex)

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

productsTable.heightAnchor.constraintEqualToConstant(newHeight).active = true.

尽管如此,在ViewWillAppear中的约束(更改/更新)之后,表视图仍保持相同的大小。有什么我做错了,或者能做些什么来达到预期的效果?

1 个答案:

答案 0 :(得分:3)

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

let heightConstraint = productsTable.heightAnchor.constraintEqualToConstant(tableHeight)
heightConstraint.active = true

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

heightConstraint.constant = newHeight