概述
- 简介
- CATransition又称转场动画,是CAAnimation的子类,可以直接使用
- 转场动画主要用于为图层提供移入/移出屏幕的动画效果
- 转场动画常见的应用是UINavigationController
- 注意事项
- 转场动画的默认过渡方式为淡出方式(kCATransitionFade)
- 可以使用常量形式或字符串形式给转场动画的type属性赋值,如
- kCATransitionPush,常量形式
- @"push",字符串形式
- 官方文档中只提供了四种转场动画过渡方式的常量,如图
- 动画的终点值必须大于等于起点值,否则没有动画效果
转场动画常用的属性
- type(NSString *),动画的过渡方式
- subtype(NSString *),动画的过渡方向
- startProgress(float),动画起点,取值范围为0~1,表示在整个动画中的比例
- endProgress(float)动画终点,取值范围为0~1,表示在整个动画中的比例
转场动画的过渡方式
- fade
- 交叉淡化过渡
- 不支持过渡方向
- 对应的常量为kCATransitionFade
- push
- 新视图把旧视图推出去
- 对应的常量为kCATransitionPush
- moveIn
- 新视图移到旧视图上面
- 对应的常量为kCATransitionMoveIn
- reveal
- 将旧视图移开显示下边的新视图
- 对应的常量为kCATransitionReveal
- cube
- 立方体反转效果
- oglFlip
- 上下左右反转效果
- suckEffect
- 收缩效果,如一块布被抽走
- 不支持过渡方向
- rippleEffect
- 滴水效果
- 不支持过渡方向
- pageCurl
- 向上翻页效果
- pageUnCurl
- 向下翻页效果
- cameraIrisHollowOpen
- 相机镜头打开效果
- 不支持过渡方向
- cameraIrisHollowClose
- 相机镜头关闭效果
- 不支持过渡方向
转场动画的过渡方向
- kCATransitionFromRight,右
- kCATransitionFromLeft,左
- kCATransitionFromTop,上
- kCATransitionFromBottom,下
示例
- 效果图
- 实现步骤
- 通过storyboard创建UIImageView控件,并拥有它
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
- 更改imageView的image属性
//点击屏幕时,更换图片 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { //控制图片循环展示 static NSInteger i = 2; if (i == 4) { i = 1; } //更换图片 NSString *imageName = [NSString stringWithFormat:@"%zd", i]; self.imageView.image = [UIImage imageNamed:imageName]; i++; //添加动画 [self setupTransition]; }
- 实现转场动画代码
- (void)setupTransition { CATransition *animation = [CATransition animation]; //设置动画的过渡方式 animation.type = @"oglFlip"; //设置动画的过渡方向 animation.subtype = kCATransitionFromRight; //设置动画时长 animation.duration = 0.5; //将动画添加到图层上 [self.imageView.layer addAnimation:animation forKey:nil]; }
分类: CoreAnimation
时间: 2024-10-29 19:06:04