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

时间:2019-04-09 17:24:11

标签: ios swift animation swift3 constraints

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

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

问题在于,随着那条线,所有约束都被动画化了,这不是我想要的。

您知道我如何仅对特定约束进行动画处理吗?

1 个答案:

答案 0 :(得分:3)

在编辑要设置动画的约束之前,请调用layoutSubviews。这将导致所有待处理的布局更新都将被应用而没有任何动画,然后您可以使用动画更改下一个约束。

像这样:

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