取消UIView动画

Saj*_*are 3 ios

我使用下面的代码进行摇动按钮如何在正在进行时取消它?

#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];
Run Code Online (Sandbox Code Playgroud)

Jac*_*kin 8

你可以用CALayerremoveAllAnimations方法:

[btn.layer removeAllAnimations];
Run Code Online (Sandbox Code Playgroud)