CATransition-转场动画
CATransition是CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。iOS比Mac OS X的转场动画效果少一点。UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的动画效果。
1.属性说明
type: 动画过渡类型
kCATransitionFade:交叉淡化过渡
kCATransitionPush:新视图吧旧视图
kCATransitionMoveIn:新视图移到旧视图上面
kCATransitionReveal:将旧视图移开,显示下面的视图
用字符串表示:
pageCurl:向上翻页效果
pageUnCurl:向下翻页效果
cube:立方体翻滚效果
oglFlip:上下左右翻转效果
rippleEffect:波纹
suckEffect:吮吸
flipFromLeft:左翻转
flipFromRight:右翻转
suckEffect:收缩效果,如一块布被抽走
rippleEffect:水滴效果
cameraIrisHollowOpen:相机镜头打开效果
cameraIrisHollowClose:相机镜头关闭效果
subType:动画过渡方向
kCATransitionFromRight
kCATransitionFromTop
kCATransitionFromLeft
kCATransitionFromBottom
duration:动画执行时间
timingFunction:动画的运动轨迹,用于变化起点和终点之间的插值计算,形象点说它决定了动画运行的节奏,比如是均匀变化(相同时间变化量相同)还是先快后慢,先慢后快还是先慢再快再慢。
kCAMediaTimingFunctionLinear 线性,即匀速
kCAMediaTimingFunctionEaseIn 先慢后快
kCAMediaTimingFunctionEaseOut 先快后慢
kCAMediaTimingFunctionEaseInEaseOut 先慢后快再慢
kCAMediaTimingFunctionDefault 实际效果是动画中间比较快.
startProgress : 动画起点(在整体动画的百分比)
endProgress : 动画终点(在整体动画的百分比)
//创建动画 CATransition *transition = [[CATransition alloc]init]; transition.duration = 0.5; transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]; transition.type = kCATransitionReveal; transition.subtype = kCATransitionFromBottom; UULoginUserViewController *login = [[UULoginUserViewController alloc] init]; UUNavigationController *nav = [[UUNavigationController alloc] initWithRootViewController:login]; self.window.rootViewController = nav; [self.window.layer addAnimation:transition forKey:@"animation"];