可以使用CALayer下的CATransition动画在同一个控制器下实现,但是在不同控制器间跳转又该如何做?
ViewController *VC = [[ViewController alloc]init];
//创建动画
CATransition *animation = [CATransition animation];
//设置运动轨迹的速度
animation.timingFunction = UIViewAnimationCurveEaseInOut;
//设置动画类型为立方体动画
animation.type = @"cube";
//设置动画时长
animation.duration =1.0f;
//设置运动的方向
animation.subtype =kCATransitionFromRight;
//控制器间跳转动画
[[UIApplication sharedApplication].keyWindow.layer addAnimation:animation forKey:nil];
[self presentViewController:VC animated:NO completion:nil];
下面奉上各种动画执行的代码:
用字符串表示想的type属性
typedef enum : NSUInteger {
fade = 1, //淡入淡出
push, //推挤
reveal, //揭开
moveIn, //覆盖
cube, //立方体
suckEffect, //吮吸
oglFlip, //翻转
rippleEffect, //波纹
pageCurl, //翻页
pageUnCurl, //反翻页
cameraIrisHollowOpen, //开镜头
cameraIrisHollowClose, //关镜头
curlDown, //下翻页
curlUp, //上翻页
flipFromLeft, //左翻转
flipFromRight, //右翻转
} AnimationType;