从中断的地方继续动画 - 核心动画

时间:2012-07-26 14:33:44

标签: ios ios5 animation core-animation layer

我的动画需要一些帮助。 我有两个按钮,第一个按钮调用动画,第二个按钮调用另一个动画。

现在,当我按下第一个按钮时,将调用下面这样的代码。 问题是,当我按下第二个按钮时,动画有点传送到它的起始位置(第二个动画位置),有没有办法让动画从它被中断的地方一起流动?

CABasicAnimation *anim1 = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
anim1.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
anim1.fromValue = [NSNumber numberWithFloat:((-10*M_PI)/180)];
anim1.toValue = [NSNumber numberWithFloat:((10*M_PI)/180)];
anim1.repeatCount = HUGE_VALF;
anim1.autoreverses = YES;
anim1.duration = .5;
[head addAnimation:anim1 forKey:@"transform"];  

虚拟图片:

http://i47.tinypic.com/2yopif6.jpg

黑线是第一个动画,红色是第二个动画,绿色是我想要弄清楚的动画。根据照片,它在黑色中间被中断。

1 个答案:

答案 0 :(得分:2)

为什么不使用动画方法而不是UIView类 - 只需确保使用 UIViewAnimationOptionBeginFromCurrentState 选项?

在此处查看参考文档:http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html

修改

我认为本教程可以更好地帮助您:http://wangling.me/2011/06/core-animation-101-from-and-to/。他们试图实现的目标是在通过按钮触发动画后弹跳球。当第二次按下按钮时,球应从当前位置弹回。有一节他们提到他们依靠2个委托方法animationDidStart和animationDidStop来实现这个想要的效果。