Ответ 1
Вы можете использовать CALayer
removeAllAnimations
метод:
[btn.layer removeAllAnimations];
Я использую ниже код для кнопки встряхивания. Как я могу отменить его при его запуске?
#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];
Вы можете использовать CALayer
removeAllAnimations
метод:
[btn.layer removeAllAnimations];