2010-10-26 80 views
3

我使用下面的代碼搖動按鈕如何取消它時,它正在進行?取消UIView動畫

#define RADIANS(degrees) ((degrees * M_PI)/180.0) 

    CGAffineTransform leftWobble = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(-10.0)); 
    CGAffineTransform rightWobble = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(10.0)); 

    btn.transform = leftWobble; // starting point 

    [UIView beginAnimations:@"wobble" context:btn]; 
    [UIView setAnimationRepeatAutoreverses:YES]; // important 
    [UIView setAnimationRepeatCount:20]; 
    [UIView setAnimationDuration:0.1]; 
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDidStopSelector:@selector(wobbleEnded:finished:context:)]; 

    btn.transform = rightWobble; // end here & auto-reverse 
    [UIView commitAnimations]; 

回答

8

您可以使用CALayerremoveAllAnimations方法:

[btn.layer removeAllAnimations];