Stop an UIView Animation
10,770
Solution 1
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.
Solution 2
You could do this:
[self.view.layer removeAnimationForKey:@"Move randomly"];
This is more effective than calling [self.view.layer removeAllAnimations]
because this can potentially remove other animations that you would want to keep.
Author by
alexclp
Updated on June 04, 2022Comments
-
alexclp almost 2 years
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]; }