Подтвердить что ты не робот

Как остановить UIView CABasicAnimation в iPhone

У меня есть 3 представления, динамически создаваемые с помощью цикла for. в том, что я назвал метод ниже для анимации вращения

- (void)runRightSpinAnimationOnView:(UIView*)view duration:(CGFloat)duration rotations:    (CGFloat)rotations repeat:(float)repeat;
{
  CABasicAnimation* rotationAnimation;
  rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
  rotationAnimation.fromValue = [NSNumber numberWithFloat:0];
  rotationAnimation.toValue = [NSNumber numberWithFloat:((360*M_PI)/180)];
  //rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 /* full rotation*/ * rotations * duration ];
  rotationAnimation.duration = duration;
  //rotationAnimation.cumulative = YES;
  rotationAnimation.repeatCount = repeat;

 [view.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
}

Как я могу остановить анимацию вращения в касании начать просмотр?... Я попробовал метод кодирования ниже, но он не работал.

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
   UITouch *touch = [touches anyObject];
   int viewTag=[touch view].tag;
   UIView *myView =(UIView *)[self.view viewWithTag:viewTag];
   [myView.layer removeAllAnimations];
}

Пожалуйста, помогите мне...

4b9b3361

Ответ 1

Возможно, из-за того, что вы удаляете анимацию из другого слоя, а не для удаления анимации с того же слоя, на который была добавлена ​​анимация. (Вы используете неправильный вид для удаления анимации, пожалуйста, проверьте его снова).

Вы можете использовать это, чтобы удалить анимацию из вашего приложения:

[yourView.layer removeAllAnimations];