iOS动画高度约束问题

时间:2017-07-10 10:50:33

标签: ios swift

更改高度约束后,我对视图动画有问题。在屏幕截图中,您可以看到它的初始值为120.0。 enter image description here  动画有效,但是我的第二个视图(蓝色视图)中的约束更新直接发生,而不是在动画期间发生。这意味着第二个视图直接跳到顶部。 使用以下代码,我将设置高度约束的更改动画:

UIView.animate(withDuration: 3.0, animations: {
    self.heightConstraint?.constant = 0.0
    self.myLabel.alpha = 0.0
    self.layoutIfNeeded()
})

有人知道为什么吗?

3 个答案:

答案 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()
})