我的动画需要一些帮助。 我有两个按钮,第一个按钮调用动画,第二个按钮调用另一个动画。
现在,当我按下第一个按钮时,将调用下面这样的代码。 问题是,当我按下第二个按钮时,动画有点传送到它的起始位置(第二个动画位置),有没有办法让动画从它被中断的地方一起流动?
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
黑线是第一个动画,红色是第二个动画,绿色是我想要弄清楚的动画。根据照片,它在黑色中间被中断。
答案 0 :(得分:2)
为什么不使用动画方法而不是UIView类 - 只需确保使用 UIViewAnimationOptionBeginFromCurrentState 选项?
修改强>
我认为本教程可以更好地帮助您:http://wangling.me/2011/06/core-animation-101-from-and-to/。他们试图实现的目标是在通过按钮触发动画后弹跳球。当第二次按下按钮时,球应从当前位置弹回。有一节他们提到他们依靠2个委托方法animationDidStart和animationDidStop来实现这个想要的效果。