У меня проблема с CABasicAnimation. Это похоже на тот пост:CABasicAnimation rotate возвращается в исходное положение
Итак, у меня есть uiimageview, который вращается в touchMove. В методе 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;
}
. Эта анимация работает нормально, но если я вызываю touchBegan до окончания анимацииRotation, угол поворота равен beginValue. Мне нужен кат текущий угол поворота. В качестве эксперимента я объявляю метод
-(vod) animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
{
NSLog(@"Animation finished!");
}
, и он работает. но я не знаю, как получить это значение угла или CGAffineTransform для моего UIImageView в animationDidStop. Это даже возможно сделать? Спасибо.