Как получить свойства CASpringAnimation из более простого инициализатора UISpringTimingParameter? - PullRequest
1 голос
/ 08 апреля 2020

У меня есть анимационная кривая пружины, заданная с использованием UISpringTimingParameters с коэффициентом демпфирования и начальной скоростью , и я использую ее с UIViewPropertyAnimator с его продолжительность указана. В другом месте моего приложения мне нужно express ту же анимацию, используя CASpringAnimation. Но CASpringAnimation не может быть инициализирован только с помощью коэффициента демпфирования и initialVelocity - ему требуются все различные параметры пружины и он получает из них settlingDuration.

При заданной продолжительности демпфирования отношение и начальный вектор скорости, как мне создать CASpringAnimation?

1 Ответ

0 голосов
/ 08 апреля 2020

Извините, я не могу помочь вам с математикой, но, возможно, вы могли бы использовать аниматор свойства dummy для вычисления того, что вам нужно? См https://developer.apple.com/videos/play/wwdc2016/216/?time=2521

func animationDuration() -> TimeInterval {
    return propertyAnimator().duration
}

func propertyAnimator(initialVelocity: CGVector = .zero) -> UIViewPropertyAnimator {
    let timingParameters = UISpringTimingParameters(mass: 4.5, stiffness: 1300, damping: 95, initialVelocity: initialVelocity)
    return UIViewPropertyAnimator(duration: assetTransitionDuration, timingParameters:timingParameters)
}
...