AnimationUtility.h
#import <Foundation/Foundation.h>
@interface AnimationUtility : NSObject {
}
/**
* 描述:定义view动画的方式,有抖动效果
* 参数:animationView:作用的view
* 参数:show:隐藏还是出现
* 返回值:版本号
*
*/
+ (void)bubbleAnimation:(UIView *)animationView show:(BOOL)show;
@end
#define TransitionDuration 0.35f
#import "AnimationUtility.h"
@implementation AnimationUtility
#pragma mark - Public Static
+ (void)bubbleAnimation:(UIView *)animationView show:(BOOL)show {
if(!show){
[UIView animateWithDuration:TransitionDuration / 3 animations:^(void){
animationView.hidden = YES;
} completion:^(BOOL finished){
}];
return;
}
animationView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.001, 0.001);
[UIView animateWithDuration:TransitionDuration / 3 animations:^(void){
animationView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.1, 1.1);
animationView.hidden = NO;
} completion:^(BOOL finished){
[UIView animateWithDuration:TransitionDuration / 6 animations:^(void){
animationView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.9, 0.9);
} completion:^(BOOL finished){
[UIView animateWithDuration:TransitionDuration / 6 animations:^(void){
animationView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.05, 1.05);
} completion:^(BOOL finished){
[UIView animateWithDuration:TransitionDuration / 6 animations:^(void){
animationView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.95, 0.95);
} completion:^(BOOL finished){
[UIView animateWithDuration:TransitionDuration / 6 animations:^(void){
animationView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.0, 1.0);
} completion:^(BOOL finished){
}];
}];
}];
}];
}];
}
@end