CATransition转场动画
2019-07-29 本文已影响0人
加盐白咖啡
简介
- CATransition又称转场动画,是CAAnimation的子类,可以直接使用
- 转场动画主要用于为图层提供移入/移出屏幕的动画效果
- 转场动画常见的应用是UINavigationController
注意事项
- 转场动画的默认过渡方式为淡出方式(kCATransitionFade)
- 可以使用常量形式或字符串形式给转场动画的type属性赋值,如
- kCATransitionPush,常量形式
- @"push",字符串形式
- 官方文档中只提供了四种转场动画过渡方式的常量
- 动画的终点值必须大于等于起点值,否则没有动画效果
转场动画常用的属性
- type(NSString *),动画的过渡方式
- subtype(NSString *),动画的过渡方向
- startProgress(float),动画起点,取值范围为0~1,表示在整个动画中的比例
- endProgress(float),动画终点,取值范围为0~1,表示在整个动画中的比例
CATransition使用
- 实例化CATransition,并设置相应的转场动画的key。
- 设置合适的转场动画的属性,比如动画周期、过渡方向、动画保持状态等。
- 将动画效果添加到相应的视图的Layer图层中
官方提供过渡方式
- kCATransitionFade
- kCATransitionMoveIn
- kCATransitionPush
- kCATransitionReveal
转场动画的过渡方式(字符串表达形式)
- fade
- 交叉淡化过渡
- 不支持过渡方向
- 对应的常量为kCATransitionFade
- push
- 新视图把旧视图推出去
- 对应的常量为kCATransitionPush
- moveIn
- 新视图移到旧视图上面
- 对应的常量为kCATransitionMoveIn
- reveal
- 将旧视图移开显示下边的新视图
- 对应的常量为kCATransitionReveal
- cube
- 立方体反转效果
- oglFlip
- 上下左右反转效果
- suckEffect
- 收缩效果,如一块布被抽走
- 不支持过渡方向
- rippleEffect
- 滴水效果
- 不支持过渡方向
- pageCurl
- 向上翻页效果
- pageUnCurl
- 向下翻页效果
- cameraIrisHollowOpen
- 相机镜头打开效果
- 不支持过渡方向
- cameraIrisHollowClose
- 相机镜头关闭效果
- 不支持过渡方向
转场动画的过渡方向
- kCATransitionFromRight,右
- kCATransitionFromLeft,左
- kCATransitionFromTop,上
- kCATransitionFromBottom,下
简单实例
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
static int i = 1;
i++;
if (i == 4) {
i = 1;
}
NSString *imageName = [NSString stringWithFormat:@"%d",i];
self.imageView.image = [UIImage imageNamed:imageName];
// 转场动画
CATransition *anim = [CATransition animation];
// 转场动画类型
anim.type = @"fade";
// 时长
anim.duration = 1.0;
[self.imageView.layer addAnimation:anim forKey:nil];
}