iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程

iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程

1、引言

        众所周知,绚丽动画效果是iOS系统的一大特色,经过UIView层封装的动画,基本已经能够知足咱们应用开发的全部需求,但若须要更加自由的控制动画的展现,咱们就须要使用CoreAnimation框架中的一些类与方法。这里先附上前几篇与动画相关的博客地址,这一系列,咱们抽出其中的CoreAnimation框架来详细解读。编程

UIViewAnimation动画的使用:http://my.oschina.net/u/2340880/blog/484457 框架

UIView动画执行的另外一种方式:http://my.oschina.net/u/2340880/blog/484538动画

UIView转场动画:http://my.oschina.net/u/2340880/blog/484669spa

CoreAnimation隐式动画的应用:http://my.oschina.net/u/2340880/blog/484793.net

粒子效果的使用:http://my.oschina.net/u/2340880/blog/485095code

2、初识CoreAnimation

        CoreAnimation框架是基于OpenGL与CoreGraphics图像处理框架的一个跨平台的动画框架。简单来讲,它使帮助咱们将图像读取成位图,经过硬件的处理,实现动画效果。文档中的一张图片十分形象的描述了CoreAnimation与UIKit框架的关系:blog

在CoreAnimation中,大部分的动画效果都是经过Layer层来实现的,经过CALayer,咱们能够组织复杂的层级结构。事件

        在CoreAnimation中,大多数的动画效果是添加在图层属性的变化上,例如,改变图层的位置,大小,颜色,圆角半径等。Layer层并不决定视图的展示,它只是存储了视图的几何属性状态。图片

3、锚点对几何属性的影响

        关于Layer层,咱们须要了解一个有关锚点的概念,锚点决定了图层的绘制位置以及动画展现时其参照的点,锚点的取值范围为0-1,锚点有两个地方在应用中会有很大影响:开发

1.layer层的position参照点始终和锚点重合

经过position决定了layer所在的位置,在Layer中,虽然也有frame这样的属性,但咱们不多使用,通常咱们会使用bounds和position肯定Layer层的大小和位置。

2.锚点决定进行动做的参照点

例如一个旋转动做,锚点决定了层旋转的中心点,对于放大缩小的动做,锚点决定了放大或者缩小参照的中心点。

能够来看下边一组图:

 

上面两个矩形,frame和bounds都是同样的,第一个矩形的锚点位置为(0.5,0.5),第二个为(0,0),

所以,两个矩形的position点是不一样的,第一个是(100,100),第二个是(40,60)。再看当产生动做时锚点的影响:

 


如今就很好理解了,锚点的不一样直接影响了动做产生的参照点。

经过CALayer的以下属性,咱们能够设置锚点,注意x,y的取值范围都是0~1,表明所占宽度和高度的比例:

@property CGPoint anchorPoint;

4、Layer与View之间的关系

        Layer是专门用于辅助咱们绘制图像的层,它使支持三维坐标系的绘制的,经过每一个坐标点与转换矩阵的运算,来决定最后绘制的状态,而且,Layer能够更高帧率的绘制动画效果。然而Layer与View依然有很大不一样,首先,咱们不可能只经过Layer来开发应用程序,Layer并无接收事件和处理用户交互的能力,这些依然须要View来完成,每个View中,都有一个Layer的属性来辅助进行图形的绘制。而且Layer是能够层级嵌套的,开发中,咱们能够根据需求灵活选择。

专一技术,热爱生活,交流技术,也作朋友。

——珲少 QQ群:203317592

相关文章
相关标签/搜索