Как остановить 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];
}
Пожалуйста, помогите мне...
Ответы
Ответ 1
Возможно, из-за того, что вы удаляете анимацию из другого слоя, а не для удаления анимации с того же слоя, на который была добавлена анимация. (Вы используете неправильный вид для удаления анимации, пожалуйста, проверьте его снова).
Вы можете использовать это, чтобы удалить анимацию из вашего приложения:
[yourView.layer removeAllAnimations];