【发布时间】:2010-10-21 12:37:49
【问题描述】:
为了尽可能简单地表达我的问题,有没有办法创建一个核心动画序列来一遍又一遍地重复直到停止?
具体来说,我正在创建一个自定义类,我希望它有一个 -start 和 -stop 方法,这将导致它跳动。写脉冲的动画代码不是问题,而是如何让它重复?
提前感谢您的任何回答!
【问题讨论】:
标签: cocoa xcode macos core-animation
为了尽可能简单地表达我的问题,有没有办法创建一个核心动画序列来一遍又一遍地重复直到停止?
具体来说,我正在创建一个自定义类,我希望它有一个 -start 和 -stop 方法,这将导致它跳动。写脉冲的动画代码不是问题,而是如何让它重复?
提前感谢您的任何回答!
【问题讨论】:
标签: cocoa xcode macos core-animation
根据the documentation,您可以通过创建具有极大repeatCount 的动画来做到这一点(代码摘自我链接到的文档):
// create the animation that will handle the pulsing.
CABasicAnimation* pulseAnimation = [CABasicAnimation animation];
// over a one second duration, and run an infinite
// number of times
pulseAnimation.duration = 1.0;
pulseAnimation.repeatCount = HUGE_VALF;
// we want it to fade on, and fade off, so it needs to
// automatically autoreverse.. this causes the intensity
// input to go from 0 to 1 to 0
pulseAnimation.autoreverses = YES;
edit:OP 询问如何停止动画。来自文档中的next paragraph:
您通过以下方式启动显式动画 发送
addAnimation:forKey:消息 到目标层,通过 动画和标识符为 参数。一旦添加到目标 层显式动画将运行 直到动画完成,或者它 从层中移除。这 用于添加动画的标识符 一个层也被用来阻止它 调用removeAnimationForKey:。你 可以通过以下方式停止图层的所有动画 发送层 aremoveAllAnimations消息。
【讨论】: