1

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

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

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

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

4

1 回答 1

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 来实现这个期望的效果。

于 2012-07-26T15:19:26.113 回答