使用initialVelocity时,UIViewPropertyAnimator无法正常工作

时间:2017-11-01 13:53:43

标签: ios swift animation velocity uiviewpropertyanimator

我将尝试用一个简单的例子来解释我的问题。我有一个带有顶部约束和高度约束的UIView。我尝试设置高度约束的增加动画。这有两种方法。

    // case 1
    heightConstraint.constant += 100
    UIView.animate(withDuration: 0.8, delay: 0.0, usingSpringWithDamping: 0.8, initialSpringVelocity: 25.0, options: [], animations: {
        self.view.layoutIfNeeded()
    }, completion: nil)

    // case 2
    heightConstraint.constant += 100
    let timingParams = UISpringTimingParameters(dampingRatio: 0.8, initialVelocity: CGVector(dx: 0, dy: 25.0))
    let animator = UIViewPropertyAnimator(duration: 0.8, timingParameters: timingParams)
    animator.addAnimations {
        self.view.layoutIfNeeded()
    }
    animator.startAnimation()

对于案例1,动画按预期执行。但是,对于案例2,动画忽略了我为UIView设置的固定顶部约束。它首先使用初始速度在视图上执行平移,在速度达到0后,它开始相对于其中心缩放UIView。

有人可以告诉我我错过了什么吗?

0 个答案:

没有答案