CABasicAnimation, как получить текущий угол поворота

У меня проблема с 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. Это даже возможно сделать? Спасибо.

7
задан Community 23 May 2017 в 11:48
поделиться