2013-05-02 3 views
11

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

- (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

возможно дубликат (http://stackoverflow.com/questions/2306870/is-there -a-путь к паузе-а-cabasicanimation) – Pfitz

ответ

23

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

Вы можете использовать это, чтобы удалить анимацию из yourView: [? Есть ли способ, чтобы приостановить CABasicAnimation]

[yourView.layer removeAllAnimations];