I want to build a pulsing animation on a simple UIImageView. The ImageView will grow a little bit bigger, then go back to its original size.
I used the following code:
- (void) doCoolAnimation {
[UIView beginAnimations:@"glowingAnimation" context:nil];
[UIView setAnimationRepeatAutoreverses:YES];
[UIView setAnimationRepeatCount:INT_MAX];
[UIView setAnimationDuration:0.25];
[UIView setAnimationBeginsFromCurrentState:YES];
imageView.transform = CGAffineTransformMakeScale(1.15, 1.15);
[UIView commitAnimations];
}
This works fine on iOS3 but works only partially on iOS4.
I have a UITabBarController with 2 views in it. In the first one is the imageView with the animation, and the animation starts as soon as the view is loaded. But after I switch to the second view (using TabBar) and back, the animation is not running anymore on iOS4. (But on iOS3 I can switch between these 2 views and the animation still works fine.)
I also tried with a timer that calls doCoolAnimation every second, but that does not help to start the animation again.
Can someone explain why after view switching the animation is gone? Is there a workaround that can make it work on iOS4?
CSS Pulse Animation Effect provides a pulsating effect to an element that changes its shape and opacity. As per the time and need, different @keyframes are used to achieve this animation. The simple yet powerful effect makes the website more vibrant, colorful, and attractive.
To create an animation using WebKit, use the -webkit-animation in conjunction with the @-webkit-keyframes keyword/at-rule, which allows you to define visual effects for your animation. The CSS -webkit-animation property is a proprietary CSS extension that is supported by the WebKit browser engine.
The animation-play-state property specifies whether the animation is running or paused. Note: Use this property in a JavaScript to pause an animation in the middle of a cycle.
Use this simple method :-
CABasicAnimation *pulseAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
pulseAnimation.duration = .5;
pulseAnimation.toValue = [NSNumber numberWithFloat:1.1];
pulseAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
pulseAnimation.autoreverses = YES;
pulseAnimation.repeatCount = FLT_MAX;
[ButtonName.layer addAnimation:pulseAnimation forKey:nil];
ViewDidLoad is only called the first time the view loads. Since the view is not deallocated immediately when you switch views, as in it still exists, viewdidLoad is not called again when you come back into the view.
Try calling [self doCoolAnimation]; in viewDidAppear. This is called every time.
- (void)viewDidAppear:(BOOL)animated {
[self doCoolAnimation]
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With