UIView 动画
[size=large][/size]需要在frameworks中添加QuartzCore.framework
在接口程序中加上头文件#import<QuartzCore/QuartzCore.h>
方法一:CATransition
创建transition
CATransition*transition=[CATransitionanimation];
transition.duration=1.0f;/*间隔时间*/
transition.timingFunction=[CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseInEaseOut];/*动画的开始与结束的快慢*/
transition.type=@"rippleEffect";/*各种动画效果*/
//@"cube"@"moveIn"@"reveal"@"fade"(default)@"pageCurl"@"pageUnCurl"@"suckEffect"@"rippleEffect"@"oglFlip"
transition.subtype=kCATransitionFromRight;/*动画方向*/
transition.delegate=self;
[navigationController.view.layer/*在想添加CA动画的VIEW的层上添加此代码*/addAnimation:transitionforKey:nil];
//另外加一句,transition在申请时用的是+方法,所以不需要自己进行release,在层上添加后不要认为retainCount已经+1,就还要release
//降效果作用到view的层上面
//实际上CATransition类中还有一个属性是removedOnCompletion,是此动画执行完后会自动remove,默认值为true
//降效果作用到view的层上面
[self.view.layeraddAnimation:transitionforKey:@"animation"];
方法二:UIViewAnimation
//开始一个动画块
[UIViewbeginAnimations:@"animationID"context:nil];
//设置动画块中的动画持续时间(用秒)
[UIViewsetAnimationDuration:0.5f];
//设置动画块中的动画属性变化的曲线
[UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];
//变化曲线还有
(UIViewAnimationCurveEaseInOut,//slowatbeginningandend
UIViewAnimationCurveEaseIn,//slowatbeginning
UIViewAnimationCurveEaseOut,//slowatend
UIViewAnimationCurveLinear)
//设置动画块中的动画效果是否自动重复播放。
[UIViewsetAnimationRepeatAutoreverses:NO];
//设置动画在动画模块中的重复次数
//setAnimationRepeatCount:
//设置动画消息的代理。
[UIViewsetAnimationDelegate:self];
[UIView
//设置消息给动画代理当动画开始的时候
setAnimationWillStartSelector:@selector(resizeAnimationWillStart:context:)];
[UIView
//设置消息给动画代理当动画停止的时候
setAnimationDidStopSelector:@selector(resizeAnimationDidStop:finished:context:)];
//将效果作用在指定的view
[UIViewsetAnimationTransition:UIViewAnimationTransitionFlipFromLeftforView:self.viewcache:YES];
效果还有(UIViewAnimationTransitionFlipFromLeft,UIViewAnimationTransitionFlipFromRight,UIViewAnimationTransitionCurlUp,UIViewAnimationTransitionCurlDown)
//显示在最前面
[self.viewexchangeSubviewAtIndex:1withSubviewAtIndex:0];
//结束动画
[UIViewcommitAnimations];