八 iOS之 CATransition (转场动画)
2017-11-01 11:50
549 查看
CATransition是CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。
动画转场类型
类型字符串 | 效果说明 | 关键字 | 方向 |
---|---|---|---|
fade | 交叉淡化过渡 | YES | |
push | 新视图把旧视图推出去 | YES | |
moveIn | 新视图移到旧视图上面 | YES | |
reveal | 将旧视图移开,显示下面的新视图 | YES | |
cube | 立方体翻滚效果 | ||
oglFlip | 上下左右翻转效果 | ||
suckEffect | 收缩效果,如一块布被抽走 | NO | |
rippleEffect | 水滴效果 | NO | |
pageCurl | 向上翻页效果 | ||
pageUnCurl | 向下翻页效果 | ||
cameraIrisHollowOpen | 相机镜头打开效果 | NO | |
cameraIrisHollowClose | 相机镜头关闭效果 | NO |
使用UIView动画函数实现转场动画
单视图
+ (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion;
参数说明:
duration:动画的持续时间
view:需要进行转场动画的视图
options:转场动画的类型
animations:将改变视图属性的代码放在这个block中
completion:动画结束后,会自动调用这个block
双视图
+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion;
参数说明:
duration:动画的持续时间
options:转场动画的类型
animations:将改变视图属性的代码放在这个block中
completion:动画结束后,会自动调用这个block
代码演示
点击屏幕切换图片在控制器中添加一个UIImageView
核心代码 ViewController.m
#import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIImageView *imageView; @end @implementation ViewController static int i = 2; - (void)viewDidLoad { [super viewDidLoad]; } -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { if (i == 4) { i = 1; } //更改图片name,用于不断切换图片,需要提前把图片命名为“1”、“2”、“3” NSString * strImage = [NSString stringWithFormat:@"%d",i]; _imageView.image = [UIImage imageNamed:strImage]; i++; //转场动画 //初始化 CATransition * anim = [CATransition animation]; //设置动画转场类型,可以是`fade', `moveIn', `push' and `reveal'等等 anim.type = @"cameraIrisHollowOpen"; //动画执行周期 anim.duration = 1; [_imageView.layer addAnimation:anim forKey:nil]; /*-----------我是分界线-----------------*/ //还可以使用UIView的动画函数实现转场动画 //单视图API // [UIView transitionWithView:_imageView duration:1 options:UIViewAnimationOptionTransitionCurlDown animations:^{ // // NSLog(@"动画开始执行前走这里"); // // // } completion:^(BOOL finished) { // // //动画执行完毕后的首位操作 // NSLog(@"动画执行完毕走这里"); // // }]; //双视图API // 这是一个便捷的视图过渡 API,在动画过程中,首先将 fromView 从父视图中删除,然后将 toView 添加,就是做了一个替换操作。 //+ (void)transitionFromView:(UIView *)fromView //toView:(UIView *)toView //duration:(NSTimeInterval)duration //options:(UIViewAnimationOptions)options //completion:(void (^ __nullable)(BOOL finished))completion; } @end
相关文章推荐
- iOS学习笔记-078.核心动画04——CATransition(转场动画)
- iOS——转场动画(CATransition)
- iOS-UI篇—核心动画(转场动画CATransition和组动画CAAnimationGroup)
- iOS CAAnimation之CATransition(自定义转场动画)
- iOS核心动画-转场动画CATransition和组动画CAAnimationGroup
- iOS CATransition动画
- iOS 核心动画之CATransition
- CATransition 转场动画
- iOS动画 CATransition动画
- IOS CATransition 立体动画效果
- CATransition(转场动画)
- core Animation之CATransition(转场动画)
- CATransition-转场动画
- 转场动画CATransition~~~~~~
- ios动画笔记(2)CATransform3D和CASpringAnimation 、CATransition和CAEmitterLayer、UIDynamicAnimator
- CoreAnimation---CATransition 转场动画
- UI基础----CATransition 转场动画 type 私有 API
- iOS CATransition动画Demo
- iOS UIView和CATransition的动画实现
- CATransition-转场动画