OStack程序员社区-中国程序员成长平台

标题: ios - 结合许多 UIViewPropertyAnimator [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 03:10
标题: ios - 结合许多 UIViewPropertyAnimator

我弄乱了 UIViewPropertyAnimator 的文档我希望找到一种方法来组合两个 UIViewPropertyAnimator。

类似这样的:

let firstAnimator = UIViewPropertyAnimator(
   duration: 2, 
   dampingRatio: 0.4, 
   animations: animation1
)

let secondAnimator = UIViewPropertyAnimator(
    duration: 2, 
    dampingRatio: 0.4,
    animations: animation2
)

firstAnimator.addAnimator(secondAnimator, withDelay: 1)
firstAnimator.startAnimation()

我缺少 UIViewPropertyAnimatorGroup 或类似的东西,这甚至存在吗?



Best Answer-推荐答案


目前推荐的方法是使用 UIViewPropertyAnimator 的数组。

此方法在 WWDC 2017 演示文稿中详细介绍,标题为“使用 UIKit 的高级动画”。 https://developer.apple.com/videos/play/wwdc2017/230/

最重要的一点是将所有动画师保持在一起,每当发生基于手势的事件时,您都可以一次将更新应用到所有动画师。

var runningAnimators = [UIViewPropertyAnimator]()

// later in the code...

runningAnimators.forEach { $0.pauseAnimation() } // pause all animations

我在 GitHub 上有一个开源代码库,其中给出了以这种方式使用多个属性动画器的示例:https://github.com/nathangitter/interactive-animations


对于您的具体问题,为什么需要多个属性动画师?通常,当您想要具有多个时序曲线的单个动画时,您只需要多个动画师,但看起来您的时序参数是相同的。

关于ios - 结合许多 UIViewPropertyAnimator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47208223/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4