我对 CABasicAnimation 有一些问题。它类似于那个帖子:CABasicAnimation 旋转返回原始位置
所以,我有在 touchMove 中旋转的 uiimageview。在执行“惯性动画”的 touchEnd 调用方法中:
-(void)animationRotation: (float)beginValue
{
CABasicAnimation *anim;
anim = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
anim.duration = 0.5;
anim.repeatCount = 1;
anim.fillMode = kCAFillModeForwards;
anim.fromValue = [NSNumber numberWithFloat:beginValue];
[anim setDelegate:self];
anim.toValue = [NSNumber numberWithFloat:(360*M_PI/180 + beginValue)];
[appleView.layer addAnimation:anim forKey:@"transform"];
CGAffineTransform rot = CGAffineTransformMakeRotation(360*M_PI/180 + beginValue);
appleView.transform = rot;
}
这个动画效果很好,但是如果我在 animationRotation 结束之前调用 touchBegan,旋转角度就是 beginValue。我需要当前的旋转角度。作为一个实验,我声明了方法
-(vod) animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
{
NSLog(@"Animation finished!");
}
它似乎工作。但我不知道如何在animationDidStop 中为我的UIImageView 获取角度或CGAffineTransform 的值。甚至有可能做到吗?谢谢。