美文网首页
ios-动画

ios-动画

作者: 歌白梨 | 来源:发表于2015-08-10 00:10 被阅读552次

1.Core Animation是一个复合引擎,它的职责就是尽可能快地组合屏幕上不同的可视内容,这个内容是被分解成独立的图层,存储在一个叫做图层树的体系之中。于是这个树形成了UIKit以及在iOS应用程序当中你所能在屏幕上看见的一切的基础。

2.一个视图就是在屏幕上显示的一个矩形块(比如图片,文字或者视频),它能够拦截类似于鼠标点击或者触摸手势等用户输入。视图在层级关系中可以互相嵌套,一个视图可以管理它的所有子视图的位置。所有的视图都从一个叫做UIVIew的基类派生而来,UIView可以处理触摸事件,可以支持基于Core Graphics绘图,可以做仿射变换(例如旋转或者缩放),或者简单的类似于滑动或者渐变的动画。

---------CALayer

3.和UIView最大的不同是CALayer不处理用户的交互。

4.CALayer并不清楚具体的响应链(iOS通过视图层级关系用来传送触摸事件的机制),于是它并不能够响应事件,即使它提供了一些方法来判断是否一个触点在图层的范围之内(具体见第三章,“图层的几何学”)

5.实际上每个视图背后关联的图层layer才是真正用来在屏幕上显示和做动画,UIView仅仅是对它的一个封装,提供了一些iOS类似于处理触摸的具体功能,以及Core Animation底层方法的高级接口。每个视图都有对应一个图层,同时视图可以加很多子图层。

6.除了视图层级和图层树之外,还存在呈现树渲染树


7.UIView没有暴露出来的CALayer的功能:

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

3D变换

非矩形范围

透明遮罩

多级非线性动画

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

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

使用多种CALayer的子类(见第六章,“特殊的图层“),并且不想创建额外的UIView去包封装它们所有

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

9.CALayer 有一个属性叫做contents,这个属性的类型被定义为id,意味着它可以是任何类型的对象。但是,在实践中,如果你给contents赋的不是CGImage,那么你得到的图层将是空白的。事实上,你真正要赋值的类型应该是CGImageRef,它是一个指向CGImage结构的指针,但是CGImageRef并不是一个真正的Cocoa对象,而是一个Core Foundation类型。,如果要给图层的寄宿图赋值,你可以按照以下这个方法:

layer.contents = (__bridge id)image.CGImage;

未完待续

相关文章

  • 随手记

    核心动画翻译https://zsisme.gitbooks.io/ios-/content/chapter14/l...

  • 随手记

    核心动画翻译https://zsisme.gitbooks.io/ios-/content/chapter14/l...

  • 2019-07-15

    iOS高级核心动画技巧 浏览地址:https://zsisme.gitbooks.io/ios-/content/...

  • 感觉有用的文章留存

    0.ios核心动画高级技巧https://zsisme.gitbooks.io/ios-/content/inde...

  • iOS-动画

    前言 在我们开发App中,会经常使用到动画去实现一些提示或者更友好的表达一些需要表达的事情,使用动画可以让我们的A...

  • ios-动画

    1.Core Animation是一个复合引擎,它的职责就是尽可能快地组合屏幕上不同的可视内容,这个内容是被分解成...

  • iOS-动画

    iOS中实现动画效果的方法有很多,主要分为两类:uikit和core animation。今天先看uikit相关动...

  • iOS-动画

    学习动画之前,要先知道CALayer的一些属性 CALayer的基本属性 尺寸(bounds) 背影颜色(back...

  • iOS-动画相关

    本篇涵盖各种直播动画,跳转,过渡动画等. 1.分享iOS中实现navigationController全屏手势滑动...

  • iOS- CoreAnimation动画

    我们知道,Layer层中可以设置许多与控件UI相关的属性,并且对于iOS开发,UIView层的属性是会映射到CAL...

网友评论

      本文标题:ios-动画

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