gpt4 book ai didi

iphone - 同步 CAAnimations

转载 作者:行者123 更新时间:2023-12-03 19:44:25 31 4
gpt4 key购买 nike

我有一个重复动画,需要与其他一些 transient 动画同步。重复动画是一条在屏幕上移动 4 秒的扫描线。当它经过下面的图像时,这些图像需要“闪烁”。

闪烁的图像可以根据用户的意愿来来去去和移动。它们也不属于同一层。

我不知道如何保持扫描线和图像动画同步。我会考虑将它们全部添加到 CAAnimationGroup 中,但“animations”属性是一个只读 NSArray,因此每次添加、删除或移动其中一个闪烁动画时,似乎我都必须重新创建该组,这将是相当频繁的。我还猜测创建一个新组意味着需要重新启动扫描线动画,从而导致其不稳定。

根据这篇文章:

=">CAAnimation 在周期性动画进度间隔中调用方法?

核心动画是“基于时间的”,但我不确定我是否完全理解这对于重复动画意味着什么以及它的可靠性如何(我在任何在线文档中都找不到提到这一点)。这是否意味着如果我在时间 x 开始扫描线重复动画,它将在开始后以精确的 4 秒间隔重复?应用程序进入后台并返回或类似的情况怎么样?

感谢您的帮助!

瑞恩

最佳答案

经过一番摆弄后,我发现我可以通过确保它们的开始时间对齐来同步我的动画。我首先设置扫描线动画的开始时间:

scanAnimation.beginTime = CACurrentMediaTime();

从那里我简单地计算了 4s 窗口内的偏移量(称之为 dt)并将其他动画的 beginTimes 设置为该值:

blipAnimation.beginTime = scanAnimation.beginTime + dt;

即使 beginTime 是过去的时间,这也能完美地工作;动画引擎实际上向前推断,并在扫描动画循环回来后的下一个点 dt 秒进行动画处理。

缺点是我现在已经彻底降低了帧速率。我正在尝试查找有关核心动画性能的有用信息,但到目前为止无济于事。到目前为止,我已经采用了一种非常简单的方法来布置所有图像和动画,并且我准备重写大量代码来优化它,但我不想在没有一些准备的情况下就开始重写。任何有关核心动画如何工作的深入讨论的指针都会非常方便。

关于iphone - 同步 CAAnimations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8282707/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com