更改高度约束后,我对视图动画有问题。在屏幕截图中,您可以看到它的初始值为120.0。 动画有效,但是我的第二个视图(蓝色视图)中的约束更新直接发生,而不是在动画期间发生。这意味着第二个视图直接跳到顶部。 使用以下代码,我将设置高度约束的更改动画:
UIView.animate(withDuration: 3.0, animations: {
self.heightConstraint?.constant = 0.0
self.myLabel.alpha = 0.0
self.layoutIfNeeded()
})
有人知道为什么吗?
答案 0 :(得分:3)
self.heightConstraint?.constant = 0.0
self.myLabel.alpha = 0.0
UIView.animate(withDuration: 3.0, animations: {
self.layoutIfNeeded()
})
应该是这样的。
答案 1 :(得分:1)
要为约束更改设置动画,您需要编写如下代码才能工作。
self.heightConstraint?.constant = 0.0
self.myLabel.alpha = 0.0
UIView.animate(withDuration: 5) {
self.layoutIfNeeded()
}
答案 2 :(得分:1)
您需要在更新约束常量之前和之后调用self.layoutIfNeeded()
。将您的代码更改为:
self.layoutIfNeeded()
UIView.animate(withDuration: 3.0, animations: {
self.heightConstraint?.constant = 0.0
self.myLabel.alpha = 0.0
self.layoutIfNeeded()
})