美文网首页
Core Animation 初探之图层(CALayer)

Core Animation 初探之图层(CALayer)

作者: _涼城 | 来源:发表于2016-07-09 07:52 被阅读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];

    }

    相关文章

      网友评论

          本文标题:Core Animation 初探之图层(CALayer)

          本文链接:https://www.haomeiwen.com/subject/kumrjttx.html