CATransition 转场动画

CATransition 转场动画

转场动画就是从一个场景以动画的形式过渡到另一个场景,navigation的push就是一种转场方式(后面会介绍如何自定义)。
转场动画一般分为这几个步骤:
(1)初始化转场动画
(2)设置转场类型属性等
(3)设置转场后的新视图并添加动画到图层
下表列出了常用的转场类型(注意私有API是苹果官方没有公开的动画类型,但是目前通过仍然可以使用):

公开API
动画类型 说明 对应常量 是否支持方向设置
fade 淡出效果 kCATransitionFade 是
movein 新视图移动到旧视图上 kCATransitionMoveIn 是
push 新视图推出旧视图 kCATransitionPush 是
reveal 移开旧视图显示新视图 kCATransitionReveal 是
私有API———-私有API只能通过字符串访问
动画类型 说明 对应常量 是否支持方向设置
cube 立方体翻转效果 无 是
oglFlip 翻转效果 无 是
suckEffect 收缩效果 无 否
rippleEffect 水滴波纹效果 无 否
pageCurl 向上翻页效果 无 是
pageUnCurl 向下翻页效果 无 是
cameralIrisHollowOpen 摄像头打开效果 无 否
cameraIrisHollowClose 摄像头关闭效果 无 否
另外对于支持方向设置的动画类型还包含子类型
动画子类型 说明
kCATransitionFromRight 从右侧转场
kCATransitionFromLeft 从左侧转场
kCATransitionFromTop 从顶部转场
kCATransitionFromBottom 从底部转场

下面是一个小例子:

1
2
3
4
5
6
7
8
9
CATransition *transition = [CATransition animation];
transition.duration = 1.0f;
transition.type = @"cube";

transition.subtype = kCATransitionFromRight;
UIView *cubeView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 200, 300)];
cubeView.backgroundColor = [UIColor cyanColor];
[self.view.layer addAnimation:transition forKey:@"cubeView"];
[self.view addSubview:cubeView];

感谢一下博客

http://www.cnblogs.com/kenshincui/p/3972100.html#autoid-3-3-0