转场动画就是从一个场景以动画的形式过渡到另一个场景,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 | 从底部转场 |
下面是一个小例子:
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