Core Animation based on Quartz provides very simple ways to create special effects in your game or application.
The following shows how to create a Resize Effect of any UIView (e.g. UIButtonView, UIImageView etc.)
- +(void)resize:(UIView*)view to:(CGSize)size withDuration:(int) duration andSnapBack:(BOOL) snapBack
- {
- // Prepare the animation from the old size to the new size
- CGRect oldBounds = view.layer.bounds;
- CGRect newBounds = oldBounds;
- newBounds.size = size;
- CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"bounds"];
- // iOS
- animation.fromValue = [NSValue valueWithCGRect:oldBounds];
- animation.toValue = [NSValue valueWithCGRect:newBounds];
- if(!snapBack)
- {
- // Update the layer's bounds so the layer doesn't snap back when the animation completes.
- view.layer.bounds = newBounds;
- }
- // Add the animation, overriding the implicit animation.
- [view.layer addAnimation:animation forKey:@"bounds"];
- }