图层与动画(简)

一.图层

1)图层是什么

(1)图层的定义

图层是管理app内容的数据对象。图层的内容由包含可视数据的位图构成。

(2)图层的类型

类别 用途
CAShaperLayer 用于绘制三次贝塞尔曲线。CAShaperLayer对绘制基于路径的形状非常有帮助。因为CAShaperLayer总是生成一个最新的路径。而如果将路径画在图层储备中,一旦图层被缩放,形状就变形了。
CATransformLayer 用于渲染一个真3D的图层层级。而不是由其他图层类实现的2D图层层级。
CAEmitterLayer 用于实现基于Core Animation粒子发射系统。发射器层对象控制粒子的生成和起源
CAGradientLayer 用于绘制一个颜色渐变填充图层的形状(所有圆角矩形边界内的部分)
CAEAGLLayer/CAOpenGLLayer 用于设置需要使用OpenGL ES(iOS)或OpenGL(OS X)绘制的内容与内容储备。
CAReplicatorLayer 当你想自动生成一个或多个子层的拷贝。复制器为你生成拷贝并使用你指定的属性值以修改复制品的外观和属性。
CAScrollLayer 用于管理由多个子区域组成的大的可滚动区域
CATextLayer 用于渲染一个无格式或属性文本字符
QCCompositionLayer 用于渲染一个Quartz组件元素(仅在OS X中有效)

(3)图层和视图的关系

二.动画

1)动画的种类

2)核心动画是什么

(1)核心动画的定义

它是一个负责在硬件上合成和操纵应用内容的基础构件。Core Animation的核心是图层对象,图层对象用于管理和操控你的应用内容。图层将捕获的内容放到一副位图中,图形硬件能够非常容易的操控你的位图。在大部分应用中,图层被作为一种管理视图内容的方式,但是你也可以创建标准的图层,这取决于你自身的需要。

(2)核心动画的分类(1:1.1,1.1.1,1.2;2;3)

补充一下,CABasicAnimation还有子类CASpringAnimation,弹簧动画。属性动画贵在属性,CALayer的属性,对应于不同的CALayer,可以针对其属性设置变化,如CAShaperLayer,可以设置strokeEnd属性,做出画笔画图的效果。

3)使用核心动画和UIKit动画须知

  • [UIView animate]的方法里只能对UIView的属性进行动画,对于layer的属性是无效的。比如你在这里想让self.AnimateView.layer.cornerRadius = 50.0; 是没有意义的。必须使用CoreAnimation。

  • 选择使用动画样式需要注意:UIView动画优先于CoreAnimation动画

  • 区分不同Anim的方法:1、对于加在一个全局变量上的anima,比如例子里的self.AnimateView ,这是一个全局变量,所以我们在这里可以通过[self.AnimateView.layer animationForKey:]根据动画不同的key来区分2、然而对于一个非全局的变量,比如demo中的progressLayer,可以用KVO:[pathAnimation setValue:@"strokeEndAnimation" forKey:@"animationName"];注意这个animationName是我们自己设定的。

  • 写一个动画比较准确的顺序:先改变model layer的属性,再应用动画。即先赋值给目标对象的属性,然后再添加动画。

你可能感兴趣的:(图层与动画(简))