如何嵌套多个CA动画?

发布于 2024-11-30 01:24:10 字数 166 浏览 1 评论 0原文

如何像 UIView animateWithDuration 那样嵌套多个 CA 动画?例如,我需要制作 6 个动画,其中每个下一个动画都在前一个动画之后。因此,使用 UIView animateWithDuration,每个下一个动画都会从完整的块中调用。 CA是否允许使用块等?如果没有那么如何执行嵌套的顺序动画?

How to nest multiple CA animation like UIView animateWithDuration does? For example, I need to animate 6 animations where each next animation goes after previous one. So, with UIView animateWithDuration, every next animation is called from complete block. Does CA allows to use blocks and etc.? If no then how to perform nested sequential animations?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

顾挽 2024-12-07 01:24:10

CAAnimation 没有基于块的 API,但您可以使用其委托方法 animationDidStop:finished: 来链接多个动画。

如果您经常这样做,您可能需要为此编写自己的基于块的包装器。

CAAnimation doesn't have a block-based API, but you could use its delegate method animationDidStop:finished: to chain multiple animations.

If you do this a lot, you may want to write your own block-based wrapper for this.

只有一腔孤勇 2024-12-07 01:24:10

除了 omz 的答案之外,您还可以设置 NSTimer 对象来启动动画的连续部分。

[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(legOne:) userInfo:nil repeats:NO];
[NSTimer scheduledTimerWithTimeInterval:4.0 target:self selector:@selector(legTwo:) userInfo:nil repeats:NO];

其中legOne: 是执行动画第一部分等的方法。

Alternatively to omz's answer, you can set up NSTimer objects to start the successive parts of the animation.

[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(legOne:) userInfo:nil repeats:NO];
[NSTimer scheduledTimerWithTimeInterval:4.0 target:self selector:@selector(legTwo:) userInfo:nil repeats:NO];

Where legOne: is a method that does the first part of the animation, etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文