Swift - 仅对特定约束进行动画处理

Swift - Animate only specific constraints

我正在尝试在 ViewController 中设置约束动画。 为此,我将这一行添加到我的代码中: 我只是想改变 UIView() 的高度(从 0 到 100)

barHeight.constant = CGFloat(100)
UIView.animate(withDuration: 2) {self.view.layoutIfNeeded()}

问题是,在该行中,所有约束都是动画的,这不是我想要的。

你知道我如何只为特定的约束而不是其他约束设置动画吗?

在编辑要设置动画的约束之前调用 layoutSubviews。这将导致在没有任何动画的情况下应用任何挂起的布局更新,然后您可以使用动画更改下一个约束。

像这样:

 self.view.layoutSubviews()
 barHeight.constant = CGFloat(100)
 UIView.animate(withDuration: 2) {self.view.layoutIfNeeded()}