一、模态视图动画
1、通过modalTransitionStyle属性来设置弹出模态视图的转场动画,即过渡样式
UIModalTransitionStyleCoverVertical // 底部滑入。
UIModalTransitionStyleFlipHorizontal // 水平翻转。
UIModalTransitionStyleCrossDissolve // 交叉溶解。
UIModalTransitionStylePartialCurl // 翻页。
//跳转之后覆盖整个屏幕,不透明
UIModalPresentationFullScreen = 0
//跳转之后覆盖整个屏幕,不透明
UIModalPresentationPageSheet
//跳转之后覆盖整个屏幕,不透明
UIModalPresentationFormSheet
//跳转之后覆盖当前内容(除导航栏和标签栏部分),不透明
UIModalPresentationCurrentContext
//跳转之后显示自定制视图(默认是覆盖整个屏幕),可以透明
UIModalPresentationCustom
//跳转之后覆盖整个屏幕,可以透明
UIModalPresentationOverFullScreen
//跳转之后覆盖当前内容(除导航栏和标签栏部分),可以透明
UIModalPresentationOverCurrentContext
//跳转之后覆盖整个屏幕,不透明
UIModalPresentationPopover
举个栗子
TwoViewController *twoVc = [[TwoViewController alloc] init];
//把当前控制器作为背景
self.definesPresentationContext = YES;
twoVc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
twoVc.modalPresentationStyle = UIModalPresentationOverCurrentContext;
[self presentViewController:twoVc animated:YES completion:nil];
3、定制模态跳转
TwoViewController *twoVc = [[TwoViewController alloc] init];
//创建动画
CATransition * transition = [CATransition animation];
//设置动画类型(这个是字符串,可以搜索一些更好看的类型)
transition.type = @"cube";
//动画出现类型,动画的方向
transition.subtype = @"fromCenter";
//动画时间
transition.duration = 0.3;
//移除当前window的layer层的动画
[self.view.window.layer removeAllAnimations];
//将定制好的动画添加到当前控制器window的layer层
[self.view.window.layer addAnimation:transition forKey:nil];
[self presentViewController:twoVc animated:NO completion:nil];
动画类型type的其它参数
设置动画的属性
fade 交叉淡化过渡
push 新视图把旧视图推出去
moveIn 新视图移到旧视图上面
reveal 将旧视图移开,显示下面的新视图
cube 立方体翻滚效果-----好
oglFlip 上下左右翻转效果---好
suckEffect 收缩效果,如一块布被抽走---好
rippleEffect 水滴效果-----好
pageCurl 向上翻页效果
pageUnCurl 向下翻页效果
cameraIrisHollowOpen 相机镜头打开效果
cameraIrisHollowClose 相机镜头关闭效果
二、自定义转场动画
有3种类型,需要用到如下三个协议:
1、UINavigationControllerDelegate - 自定义navigationController转场动画的时候
2、UITabBarControllerDelegate - 自定义tabbarController转场动画的时候
3、UIViewControllerTransitioningDelegate - 自定义present / dismiss的时候
后续研究,参考博客:
https://onevcat.com/2013/10/vc-transition-in-ios7/
http://www.jianshu.com/p/73e65b70340e