gpt4 book ai didi

ios - 使用 CAKeyframeAnimation 的交错动画?

转载 作者:行者123 更新时间:2023-12-01 17:55:02 25 4
gpt4 key购买 nike

我想在特定时间点为 3 个不同的图像设置动画,使其行为如此。

1) 1st image moves from (Xx, Yx) to (Xz,Yz) 
2) Wait 10 seconds
3) 2nd image appears in place at Xa,Yb
4) Wait half as long as in step 2
5) Fade out 2nd image
6) 3rd image appears at the same place as 2nd image

如果这些图像的每个动画都在它们自己的 CALayers 上,我可以使用具有多个图层的 CAKeyframeAnimation 吗?如果没有,还有什么方法可以制作交错动画?

我正在尝试将纸牌从屏幕外移动到特定位置,然后几秒钟后其他一些技巧会出现在屏幕上。

最佳答案

已编辑
当我写这篇文章时,我认为你不能使用 CAAnimationGroup 来为多个图层设置动画。马特刚刚发布了一个答案,证明你 可以去做。我特此吃掉我的话。
我已将 Matt 答案中的代码改编为我已上传到 Github (link.) 的项目。
Matt 的动画创建的效果是一双脚在屏幕上行走。找了一些开源的foot,安装在项目中,做了一些改动,但是基本的做法是Matt的。给他的 Prop 。
效果如下:
enter image description here
(以下说法不正确)
不,您不能使用关键帧动画为多个图层设置动画。给定的 CAAnimation 只能作用于单个图层。顺便说一下,这包括图层组。
如果你所做的只是在直线上移动图像、淡出和淡入,你为什么不使用 UIView 动画呢?看看名称以 animateWithDuration:animations 开头的方法:它们可以让您同时创建多个动画,然后完成 block 可以触发其他动画。
如果出于某种原因需要使用图层动画,可以使用 beginTime 属性(CAAnimation 对象具有该属性,因为它们符合 CAMediaTiming 协议(protocol)。)对于不属于动画组的 CAAnimations,您可以使用

animation.beginTime = CACurrentMediaTime() + delay;
其中 delay 是一个 double ,它以秒为单位表示延迟。
如果延迟为 0,则动画将开始。
第三种选择是将您的 View Controller 设置为动画的委托(delegate),并使用 animationDidStop:finished: 方法链接您的动画。在我看来,这最终是最困惑的实现方法。

关于ios - 使用 CAKeyframeAnimation 的交错动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19471427/

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