转场动画CATransition
•CATransition是CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。iOS比Mac OS X的转场动画效果少一点
•
•UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的动画效果
•
•动画属性:
–type:动画过渡类型
–subtype:动画过渡方向
–startProgress:动画起点(在整体动画的百分比)
–endProgress:动画终点(在整体动画的百分比)
转场动画使用步骤~
// 转场动画 CATransition *transition = [[CATransition alloc] init]; // 类型 transition.type = @"fade"; //子类型 transition.subtype = kCATransitionFromRight; transition.duration = 0.5f; [self.view.layer addAnimation:transition forKey:nil];
在addAnimation之前给当前的view做操作就行了,然后addAnimation以后,这个操作会随动画执行(例如改变背景色等,或者改变子view也会跟随动画执行)
上面的type属性设置的是fade.这是淡入淡出的效果,当然还有其他的效果,见下表~
类型字符串 |
效果说明 |
关键字 |
方向 |
fade |
交叉淡化过渡 |
YES |
|
push |
新视图把旧视图推出去 |
YES |
|
moveIn |
新视图移到旧视图上面 |
YES |
|
reveal |
将旧视图移开,显示下面的新视图 |
YES |
|
cube |
立方体翻滚效果 |
||
oglFlip |
上下左右翻转效果 |
||
suckEffect |
收缩效果,如一块布被抽走 |
NO |
|
rippleEffect |
水滴效果 |
NO |
|
pageCurl |
向上翻页效果 |
||
pageUnCurl |
向下翻页效果 |
||
cameraIrisHollowOpen |
相机镜头打开效果 |
NO |
|
cameraIrisHollowClose |
相机镜头关闭效果 |
NO |
因为转场动画使用比较频繁,所以UIKit框架封装了转场动画
下面是单视图转场
•+ (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion;
•
•参数说明:
–duration:动画的持续时间
–view:需要进行转场动画的视图
–options:转场动画的类型
–animations:将改变视图属性的代码放在这个block中
completion:动画结束后,会自动调用这个block
下面是双视图转场
•+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion;
•
•参数说明:
–duration:动画的持续时间
–options:转场动画的类型
–animations:将改变视图属性的代码放在这个block中
–completion:动画结束后,会自动调用这个block
•转场动画存在的问题——动画过程中无法交互
–如果要在切换时实现交互效果需要使用UIScrollView+ UIPageControl