CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。iOS比Mac OS X的转场动画效果少一点
UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的动画效果
属性解析:
type:动画过渡类型
subtype:动画过渡方向
startProgress:动画起点(在整体动画的百分比)
endProgress:动画终点(在整体动画的百分比)
类型字符串 |
效果说明 |
关键字 |
方向 |
fade |
交叉淡化过渡 |
YES |
|
push |
新视图把旧视图推出去 |
YES |
|
moveIn |
新视图移到旧视图上面 |
YES |
|
reveal |
将旧视图移开,显示下面的新视图 |
YES |
|
cube |
立方体翻滚效果 |
||
oglFlip |
上下左右翻转效果 |
||
suckEffect |
收缩效果,如一块布被抽走 |
NO |
|
rippleEffect |
水滴效果 |
NO |
|
pageCurl |
向上翻页效果 |
||
pageUnCurl |
向下翻页效果 |
||
cameraIrisHollowOpen |
相机镜头打开效果 |
NO |
|
cameraIrisHollowClose |
相机镜头关闭效果 |
NO |
/* 过渡效果
fade //交叉淡化过渡(不支持过渡方向) kCATransitionFade
push //新视图把旧视图推出去
kCATransitionPush
moveIn //新视图移到旧视图上面
kCATransitionMoveIn
reveal //将旧视图移开,显示下面的新视图
kCATransitionReveal
cube //立方体翻滚效果
oglFlip //上下左右翻转效果
suckEffect //收缩效果,如一块布被抽走(不支持过渡方向)
rippleEffect //滴水效果(不支持过渡方向)
pageCurl //向上翻页效果
pageUnCurl //向下翻页效果
cameraIrisHollowOpen //相机镜头打开效果(不支持过渡方向)
cameraIrisHollowClose //相机镜头关上效果(不支持过渡方向)
*/
/* 过渡方向
kCATransitionFromRight
kCATransitionFromLeft
kCATransitionFromBottom
kCATransitionFromTop*/
•CATransition的使用
CATransition
*anim = [CATransition animation];
anim.type =
@“cube”; // 动画过渡类型
anim.subtype =
kCATransitionFromTop; // 动画过渡方向
anim.duration =
1; // 动画持续1s
//
代理,动画执行完毕后会调用delegate的animationDidStop:finished:
anim.delegate
= self;
/*******中间穿插改变layer属性的代码**********/
[layer
addAnimation:anim forKey:nil];
使用UIView动画函数实现转场动画-- 单视图
+ (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
使用UIView动画函数实现转场动画——双视图
+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion;
参数说明:
duration:动画的持续时间
options:转场动画的类型
animations:将改变视图属性的代码放在这个block中
completion:动画结束后,会自动调用这个block