iOS学习笔记-078.核心动画04——CATransition(转场动画)
来源:互联网 发布:淘宝网店转让合法吗 编辑:程序博客网 时间:2024/05/22 14:44
- 核心动画04CATransition转场动画
- 一简介
- 二转场动画过渡效果
- 三转场基本代码
- 四使用UIView动画函数实现转场动画单视图
- 五代码
- 六图示
核心动画04——CATransition(转场动画)
一、简介
CATransition是CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。iOS比Mac OS X的转场动画效果少一点
UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的动画效果
动画属性:
type:动画过渡类型subtype:动画过渡方向startProgress:动画起点(在整体动画的百分比)endProgress:动画终点(在整体动画的百分比)
二、转场动画过渡效果
三、转场基本代码
static int _i = 0;//转场动画-(void)transAnim:(NSString*)type{ //转场代码与转场动画必须得在同一个方法当中. //转场代码 _i = _i%3 + 1; self.imageV.image = [UIImage imageNamed:( [NSString stringWithFormat:@"%d",_i] )]; //转场动画 CATransition *anim = [CATransition animation]; //设置转场动画类型 anim.type = type; //起始位置 anim.startProgress = 0.2; anim.endProgress = 0.9; [self.imageV.layer addAnimation:anim forKey:nil];}
四、使用UIView动画函数实现转场动画——单视图
+ (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^ __nullable)(void))animations completion:(void (^ __nullable)(BOOL finished))completion NS_AVAILABLE_IOS(4_0);
参数说明:
duration:动画的持续时间view:需要进行转场动画的视图options:转场动画的类型animations:将改变视图属性的代码放在这个block中completion:动画结束后,会自动调用这个block
options:转场动画的类型
UIViewAnimationOptionTransitionNone = 0 << 20, // defaultUIViewAnimationOptionTransitionFlipFromLeft = 1 << 20,UIViewAnimationOptionTransitionFlipFromRight = 2 << 20,UIViewAnimationOptionTransitionCurlUp = 3 << 20,UIViewAnimationOptionTransitionCurlDown = 4 << 20,UIViewAnimationOptionTransitionCrossDissolve = 5 << 20,UIViewAnimationOptionTransitionFlipFromTop = 6 << 20,UIViewAnimationOptionTransitionFlipFromBottom = 7 << 20,
代码示例
//使用UIView动画函数实现转场动画- (IBAction)viewTranstion:(id)sender { [UIView transitionWithView:self.imageV duration:0.3 options:UIViewAnimationOptionTransitionFlipFromTop animations:^{ //转场代码 _i = _i%3 + 1; self.imageV.image = [UIImage imageNamed:( [NSString stringWithFormat:@"%d",_i] )]; } completion:^(BOOL finished) { }];}
五、代码
//// ViewController.m// 03_UIView72_转场动画//// Created by 杞文明 on 17/6/15.// Copyright © 2017年 杞文明. All rights reserved.//#import "ViewController.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet UIImageView *imageV;@property (weak, nonatomic) IBOutlet UIView *conV;@property (weak, nonatomic) NSArray<NSString *> *typeArr;@property (weak, nonatomic) UIButton *lastBtn;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; [self initArr]; [self createButtons];}//初始化动画的type-(void)initArr{ _typeArr = [NSArray arrayWithObjects:@"fade",@"push",@"moveIn",@"reveal",@"cube",@"fade",@"oglFlip",@"suckEffect",@"rippleEffect",@"pageCurl",@"pageUnCurl",@"cameraIrisHollowOpen",@"cameraIrisHollowClose", nil];}//创建按钮-(void)createButtons{ //控件之间的空格 int MARGIN_WIDTH = 10; int col = 3; int width = (_conV.bounds.size.width-MARGIN_WIDTH*(col+1)) / col; int height = 40; int j = 0; for (int i=0; i<_typeArr.count; i++) { j = i/col; NSInteger startX = MARGIN_WIDTH + (MARGIN_WIDTH+width)*(i%col); NSInteger startY = MARGIN_WIDTH + (MARGIN_WIDTH+height)*j; UIButton * button = [[UIButton alloc]initWithFrame:CGRectMake(startX, startY, width, height)]; //设置对应的值 NSString * title = [NSString stringWithFormat:@"%@",_typeArr[i]]; //给控件设置值和一些属性] button.backgroundColor = [UIColor grayColor]; //文字 [button setTitle:title forState:UIControlStateNormal]; //字体颜色 [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [button setTitleColor:[UIColor greenColor] forState:UIControlStateSelected]; //给控件点击事件添加代理 [button addTarget:self action:@selector(clickButton:) forControlEvents:UIControlEventTouchUpInside]; //.把控件添加到myView中 [_conV addSubview:button]; }}/**控件的点击事件*/-(void)clickButton:(UIButton*)button{ [self transAnim:button.titleLabel.text]; //选中设置 if(_lastBtn!=nil) [_lastBtn setSelected:NO]; [button setSelected:YES]; _lastBtn = button;}//使用UIView动画函数实现转场动画- (IBAction)viewTranstion:(id)sender { [UIView transitionWithView:self.imageV duration:0.3 options:UIViewAnimationOptionTransitionFlipFromTop animations:^{ //转场代码 _i = _i%3 + 1; self.imageV.image = [UIImage imageNamed:( [NSString stringWithFormat:@"%d",_i] )]; } completion:^(BOOL finished) { }];}static int _i = 1;//转场动画-(void)transAnim:(NSString*)type{ //转场代码与转场动画必须得在同一个方法当中. //转场代码 _i = _i%3 + 1; self.imageV.image = [UIImage imageNamed:( [NSString stringWithFormat:@"%d",_i] )]; //转场动画 CATransition *anim = [CATransition animation]; //设置转场动画类型 anim.type = type; //方向 //anim.subtype = kCATransitionFromTop; //起始位置 anim.startProgress = 0.2; anim.endProgress = 0.9; [self.imageV.layer addAnimation:anim forKey:nil];}@end
六、图示
阅读全文
0 0
- iOS学习笔记-078.核心动画04——CATransition(转场动画)
- CATransition—转场动画
- iOS——转场动画(CATransition)
- CATransition-核心动画-转场动画
- iOS转场动画CATransition
- IOS 动画 核心动画之转场动画CATransition
- 转场动画—— CATransition
- 核心动画之转场动画(CATransition)
- CATransition转场动画-IOS开发
- 【iOS开发】---- 转场动画 CATransition
- 【iOS开发】---- 转场动画 CATransition
- iOS CoreAnimation 转场动画 CATransition
- 视图控制器转场动画——CATransition
- IOS动画之 转场动画 CATransition
- iOS核心动画-转场动画CATransition和组动画CAAnimationGroup
- iOS开发之 转场动画CATransition
- 八 iOS之 CATransition (转场动画)
- CATransition转场动画
- java语言基础(66)——集合框架(arrayList ConcurrentModificationException 并发修改异常的解决方案)
- MVC下拉控件绑定数据
- 子进程的异步等待方式
- 内核启动分析
- Hbase之表的设计
- iOS学习笔记-078.核心动画04——CATransition(转场动画)
- mongoDB-pymongo-入门
- C++primer-1
- 值得收藏的50个学习C语言的源代码网站
- html学习
- Dockerfile中的Shell风格与JSON风格对比及SHELL指令详解
- java字符串操作:匹配、替换、萃取、分割拆分
- MySQL插入数据时中文乱码问题
- Leetcode 513. Find Bottom Left Tree Value