Stop an UIView Animation

ios, objective-c, uibutton, uiviewanimation, xcode

Solution

Try this:

[myView.layer removeAllAnimations];

and be sure to import the Quartz framework as well:

#import <QuartzCore/QuartzCore.h>

Animations are applied using CoreAnimation in the QuartzCore framework, even the UIView animation methods. Just target the view's layer that you want to stop animating, and remove its animations.

Problem

Possible Duplicate: Cancel a UIView animation? I have the following animation and i want to stop it when i press a button. Can you please tell me how can i do it? I can't figure it out how. Thanks. ``` -(void)animationLoop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context { [UIView beginAnimations:@"Move randomly" context:nil]; [UIView setAnimationDuration:1]; // [UIView setAnimationBeginsFromCurrentState:NO]; CGFloat x = (CGFloat) (arc4random() % (int) self.bounds.size.width); CGFloat y = (CGFloat) (arc4random() % (int) self.bounds.size.height); CGPoint squarePostion = CGPointMake(x, y); strechView.center = squarePostion; [UIView setAnimationDelegate:self]; [UIView setAnimationDidStopSelector:@selector(animationLoop:finished:context:)]; [UIView commitAnimations]; } ```

Original source

Related problems