ios--Quartzcore核心动画框架的学习
2017-04-17 20:35
423 查看
核心动画框架Quartzcore
首先不得不先提到CALayer与UIView两者之间的区别
一.CALayer和UIView类是完全不用的两个类,CALayer是UIView上的图层,有很多个CALayer组成一个UIView
二.UIView动画和核心动画的区别
1.核心动画只作用在layer
2.核心动画修改的值都是假象,他的真实位置并没有发生改变
3.当需要与用户进行交互时(User Interaction Enabled)用UIView,不需要时两个都可以用
三.Quartzcore主要用到的 CAAnimation类
CAAnimationGroup;//动画组
CAPropertyAnimation
CABasicAnimation;//基本动画
CAKeyframeAnimation;//帧动画
CATransition;//转场动画
四.各个 CAAnimation中的属性值
1. CABasicAnimation
keyforpath
fromValues toValues
values
或者使用kvc
[anim setValue:<> forKey:<>];
2.CATransition
type
subType
五.其他
CADisplayLink
一旦CADisplayLink 以特定的模式注册到runloop之后,每当屏幕需要刷新的时候,runloop就回调用CADisplayLink 绑定的target的selector,这时target可以读到CADisplayLink 的每次跳用过的时间戳,用来准备下一帧显示需要的数据
首先不得不先提到CALayer与UIView两者之间的区别
一.CALayer和UIView类是完全不用的两个类,CALayer是UIView上的图层,有很多个CALayer组成一个UIView
二.UIView动画和核心动画的区别
1.核心动画只作用在layer
2.核心动画修改的值都是假象,他的真实位置并没有发生改变
3.当需要与用户进行交互时(User Interaction Enabled)用UIView,不需要时两个都可以用
三.Quartzcore主要用到的 CAAnimation类
CAAnimationGroup;//动画组
CAPropertyAnimation
CABasicAnimation;//基本动画
CAKeyframeAnimation;//帧动画
CATransition;//转场动画
四.各个 CAAnimation中的属性值
1. CABasicAnimation
keyforpath
fromValues toValues
values
或者使用kvc
[anim setValue:<> forKey:<>];
//创建一个帧动画 CAKeyframeAnimation *anim = [CAKeyframeAnimation animation]; [anim setValue:@[@(angle2Rad(-5)),@(angle2Rad(5)),@(angle2Rad(-5))]forKey:@"transform.rotation"]; // //设置属性 // anim.keyPath = @"transform.rotation"; // // //设置属性值. // anim.values = @[@(angle2Rad(-5)),@(angle2Rad(5)),@(angle2Rad(-5))]; //设置执行的次数 anim.repeatCount = MAXFLOAT; anim.duration = 0.25; //添加动画 [self.iconV.layer addAnimation:anim forKey:nil];
2.CATransition
type
subType
//创建动画 CATransition *anim = [CATransition animation]; //设置转场类型 //anim.type = @"pageCurl"; anim.type = @"fade"; //设置转场的方向 anim.subtype = kCATransitionFromTop; //设置动画的开始点. anim.startProgress = 0.2; //设置动画的结束点. anim.endProgress = 0.8; anim.duration = 1; [self.imageV.layer addAnimation:anim forKey:nil];
五.其他
CADisplayLink
一旦CADisplayLink 以特定的模式注册到runloop之后,每当屏幕需要刷新的时候,runloop就回调用CADisplayLink 绑定的target的selector,这时target可以读到CADisplayLink 的每次跳用过的时间戳,用来准备下一帧显示需要的数据
-(CADisplayLink *)link{ if (_link == nil) { CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(update)]; [link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode]; _link = link; } return _link; }
相关文章推荐
- IOS QuartzCore核心动画框架
- iOS ——QuartzCore核心动画框架
- iOS学习笔记之QuartzCore框架
- iOS学习笔记之QuartzCore框架
- QuartzCore框架-- iOS中的动画
- iOS高级-QuartzCore框架-CoreAnimation和UIView动画的使用
- iOS学习笔记09-核心动画CoreAnimation
- iOS学习笔记之QuartzCore框架
- iOS 动画初探序一:QuartzCore框架与CoreAnimation的前世今生
- iOS学习笔记之QuartzCore框架
- iOS学习笔记之QuartzCore框架
- iOS学习笔记之QuartzCore框架
- IOS学习笔记 运用Quartz 2D框架绘制常见的图形(2)
- iOS高级-QuartzCore框架-图形上下文栈、矩阵操作、裁剪、重绘(刷帧)
- ios-day18-06(核心动画Core Animation简介、CAAnimation属性介绍)
- iOS开发基础知识:Core Animation(核心动画)
- CoreMotion框架-iOS设备的核心运动
- IOS学习笔记 运用Quartz 2D框架绘图理论基础(1)
- iOS高级-QuartzCore框架-CALayer图层-截屏
- iOS高级-QuartzCore框架-复习和补充、模仿imageView、打水印