2013-05-02 20 views
11

Döngü kullanarak dinamik olarak oluşturulmuş 3 görünüm var. ki ben irtibatta aşağıda kodlama yöntemi başlamak çalıştı ... ben irtibatta rotasyon animasyonu durdurmak nasıliPhone'da UIView CABasicAnimation nasıl durdurulur

- (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"]; 
} 

? görünümün başlayacak rotasyon animasyon için aşağıdaki yöntemi denilen ama

işe yaramadı
-(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]; 
} 

bana yardım edin ...

+1

olası yinelenen (http://stackoverflow.com/questions/2306870/is-there:

Sen yourView animasyonu kaldırmak için kullanabilir -a-yollu-to-duraklama-a-CABasicAnimation) – Pfitz

cevap

23

diğer katmandan animasyon kaldırıyorsunuz yerine, üzerinde animasyon ekledi aynı katmanda animasyonu kaldırmak için bir çünkü olabilir. (Animasyonu kaldırmak için yanlış görünümü kullanıyorsunuz, lütfen tekrar kontrol edin). [? Bir CABasicAnimation duraklatmak için bir yolu var mı]

[yourView.layer removeAllAnimations];