【问题标题】:iOS Swift How to Jump in middle of an animationiOS Swift 如何在动画中间跳转
【发布时间】:2018-08-23 18:18:46
【问题描述】:

比如说,动画时间持续时间是 10 秒。但是,想从第 5 秒之间开始动画。在 Android 中有 valueAnimator.setCurrentPlayTime(int)。 请指导 Swift 等价物。

【问题讨论】:

标签: swift animation seek


【解决方案1】:

您可以使用UIViewPropertyAnimator 来完成此操作

您需要在初始化程序中创建动画,您可以在其中设置持续时间(以秒为单位)和时间曲线。

var animator = UIViewPropertyAnimator(duration: 10, curve: .linear, animations: {

   //animating the change of position for an object
    objectToAnimate.frame = objectToAnimate.frame.offsetBy(dx: 100, dy: 0)
})
animator.pauseAnimation()

如果您想要使用贝塞尔曲线或基于弹簧的时序制作更复杂的动画,请使用其他 init。

根据用户交互,您可以开始继续暂停 动画。创建动画对象后,您应该暂停您的动画,这样它就不会在您创建后立即停止。

animator.pauseAnimation()

animator.startAnimation()

animator.continueAnimation(withTimingParameters: nil, durationFactor: 0)

您还可以设置动画的百分比,以便从动画的某个点开始。

animator.fractionComplete = 0.5

跳到动画的中间,已经完成了 50%

如果您想很好地了解它的工作原理,我强烈建议您阅读WWDC Animation Keynote

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-06
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 2017-09-30
    相关资源
    最近更新 更多