ios - 运行一系列短动画的最佳方式?

标签 ios swift xcode

我基本上有一首卡通需要跳舞的歌曲。

有没有更好:

版本 A:一首完整的歌曲并调度一堆队列:

    DispatchQueue.main.asyncAfter(deadline: .now() + 3.0) {
        //Have the figure dance move 1
    }
    DispatchQueue.main.asyncAfter(deadline: .now() + 5.0) {
        //Have the figure dance move 2
     }

或分段歌曲和 Action :
   func dancing(){
     timeElapsed += 1
     if timeElapsed == 1 {
        \\figure does move 1
        self.playSound()
     } else if timeElapsed == 2 {
        \\figure does move 2
        self.playSound2()
     }

作为总结:

版本a:同时调度多个队列

版本 b:分割队列,但这意味着我的项目将有 10 多个媒体文件

反正有测试这个吗?或者有什么替代方法?我四处寻找并看到了并发/同步队列之类的东西,但对如何在实践中使用它们知之甚少。

最佳答案

如果不想嵌套太多,可以使用UIViewPropertyAnimator .例如:

let animation1 = UIViewPropertyAnimator(duration: 0.5, curve: .linear) {
    // animation code
}

let animation2 = UIViewPropertyAnimator(duration: 1, curve: .linear) {
    // animation code
}

animation1.addCompletion { _ in
    animation2.startAnimation()
}

animation1.startAnimation()

关于ios - 运行一系列短动画的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61672781/

相关文章:

iphone - 帮助格式化数字,objective-c

xcode - 链接被提升.. 什么是-rpath? macOS X

ios - swift 2 从解包变量中获取整数值

iphone - 如何在选定的 UITabBar 项目之上覆盖?

ios - 如何在 Swift 中使用 XIB 文件初始化/实例化自定义 UIView 类

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?

swift - 客户端的 Xcode 8 导出存档

ios - 在 View Controller 之间转换时自定义动画

ios - 检查 UILabel 中的截断 - iOS、Swift

ios - 添加了超过 20 个 tableviewcells 但之后无法滚动 tableview 以查看 jonkykong/SideMenu iOS 演示应用程序中的所有单元格