Core Animation 初探之图层(CALayer)

2016-07-09  本文已影响45人  _涼城

      Core Animation这个名字是从Layer Kit演变而来,做动画只是Core Animation特性之一。

       Core Animation是一个复合引擎,它的职责就是尽可能快地组合屏幕上不同的可视内容,这个内容是被分解成独立的图层,存储在一个叫做图层树的体系之中。

       从图层树开始,涉及一下Core Animation的静态组合以及布局特性。


图层和视图

      在iOS当中,所有的 视图 都从UIView 基类派生而来,可以处理触摸事件,可以支持基于Core Graphics绘图,可以做仿射变换(例如旋转或者缩放),或者简单的类似于滑动或者渐变的动画。

      CALayer和UIView最大的不同是CALayer不处理用户的交互,UIView仅仅是对图层的一个封装,提供了一些iOS类似于处理触摸的具体功能,以及Core Animation底层方法的高级接口。


      CALayer的功能:

            阴影,圆角,带颜色的边框

            3D变换

            非矩形范围

            透明遮罩

            多级非线性动画

需要创建 CALayer,并使用 Core Animation 时,需要导入QuartzCore库。


当满足以下条件的时候,可能更需要使用CALayer而不是UIView:

      开发同时可以在Mac OS上运行的跨平台应用

      使用多种CALayer的子类,并且不想创建额外的UIView去包封装它们所有

      做一些对性能特别挑剔的工作,比如对UIView一些可忽略不计的操作都会引起显著的不同(尽管如此,你可能会直接想使用OpenGL绘图)



#pragma mark - 1.图层的树状结构

- (void)addBlueLayer{

// create subLayer

CALayer *blueLayer = [CALayer layer];

blueLayer.frame = CGRectMake(50, 50, 100, 100);

blueLayer.backgroundColor = [UIColor blueColor].CGColor;

// add layer to layerView

[self.layerView.layer addSublayer:blueLayer];

}

上一篇下一篇

猜你喜欢

热点阅读