I\'m doing an animation using animationImages and animationRepeatCount = 1; How can I detect when the animation is done?
Thanks, Tee
Very old question, but I needed a fix now, this works for me:
[CATransaction begin];
[CATransaction setCompletionBlock:^{
DLog(@"Animation did finish.");
}];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.window.bounds];
imageView.animationDuration = 0.3 * 4.0;
imageView.animationImages = @[[UIImage AHZImageNamed:@"Default2"],
[UIImage AHZImageNamed:@"Default3"],
[UIImage AHZImageNamed:@"Default4"],
[UIImage AHZImageNamed:@"Default5"]];
imageView.animationRepeatCount = 1;
[self.window addSubview:imageView];
[imageView startAnimating];
[CATransaction commit];
Set the setAnimationDidStopSelector: to a method that takes action when the animation stops.
You don't get a notification when UIImageView animations are finished. You should use NSObject's performSelector:withObject:afterDelay: method to schedule some code to execute after the time is done, but it won't be perfect.