实现动画方式深度解析(五) —— QuartzCore框架之CoreAnimation(二)

版本记录

版本号 时间
V1.0 2017.09.20

前言

app中好的炫的动画可以让用户耳目一新,为产品增色不少,关于动画的实现我们可以用基本动画、关键帧动画、序列帧动画以及基于CoreGraphic的动画等等,接下来这几篇我就介绍下我可以想到的几种动画绘制方法。具体Demo示例已开源到Github —— 刀客传奇,感兴趣的可以看我写的另外几篇。
1. 实现动画方式深度解析(一) —— 播放GIF动画(一)
2. 实现动画方式深度解析(二) —— 播放GIF动画之框架FLAnimatedImage的使用(二)
3. 实现动画方式深度解析(三) —— 播放序列帧动画(一)
4. 实现动画方式深度解析(四) —— QuartzCore框架(一)

CoreAnimation基本

CoreAnimation用于渲染、合成和动画的视觉元素。

核心动画提供高帧率和平滑的动画,而不会增加CPU负担并减慢您的应用程序。 绘制动画的每一帧所需的大部分工作都是为您完成的。 您可以配置一些动画参数(例如开始和结束点),并告知Core Animation开始。 核心动画做其他事情,将大部分工作交给专用图形硬件来加速渲染。关于CoreAnimation的文档可以参考Core Animation Programming Guide

CoreAnimation包含下面几个部分:

1. Layer Basics

CALayer
CALayerDelegate
CAConstraint
CALayoutManager
CAConstraintLayoutManager
CAAction

2. Text, Shapes, and Gradients

CATextLayer
CAShapeLayer
CAGradientLayer

3. Animation

CAAnimation
CAAnimationDelegate
CAPropertyAnimation
CABasicAnimation
CAKeyframeAnimation
CASpringAnimation
CATransition
CAValueFunction

4. Animation Groups

CAAnimationGroup
CATransaction

5. Animation Timing

CACurrentMediaTime()
CAMediaTimingFunction
CAMediaTiming
CADisplayLink

6. Particle Systems

CAEmitterLayer
CAEmitterCell

7. Advanced Layer Options

CAScrollLayer
CATiledLayer
CATransformLayer
CAReplicatorLayer

8. Metal and OpenGL

CAMetalLayer
CAMetalDrawable
CAEAGLLayer
CAOpenGLLayer
CARenderer

9. Remote Display of Layer Content

CARemoteLayerClient
CARemoteLayerServer

10. Transforms

Transforms

11. Quartz Composer

QCCompositionLayer

Core Animation Constants

12. Reference

Core Animation Constants


CoreAnimation结构

如果你在写一个iOS app,无论你是否知道它,你都在使用Core Animation。如果你正在写OS X app,你可以很好的利用Core Animation而不用花太多的精力。Core Animation位于AppKitUIKit底层,并且已经集成到CocoaCocoa Touch视图工作流中,当然,Core Animation核心动画还具有扩展app的视图展示的功能的接口,并为您的app动画提供更精细的控制。


Core Animation Manages Your App’s Content - Core Animation管理你app的内容

Core Animation本身不是一个画图系统,它是用于在硬件中合成和操纵app内容的基础。 这种基础的核心是层layer对象,用于管理和操纵您的内容。 一个图层layer将您的内容捕获到位图中,这些位图可以通过图形硬件轻松操作。 在大多数app中,图层layers被用作管理视图的内容,但也可以根据需要创建独立的图层layers。


Layer Modifications Trigger Animations - 层修改触发动画

使用Core Animation创建的大部分动画涉及图层属性的修改。 像视图一样,层对象具有边界矩形,屏幕上的位置,不透明度,变换以及许多可以修改的面向视觉的属性。 对于大多数这些属性,更改属性的值会导致隐式动画的创建,从而将图层从旧值移动到新值。 您还可以在需要对结果动画行为进行更多控制的情况下显式地动画化这些属性。


Layers Can Be Organized into Hierarchies - 层可以组织到层次结构中

可以分层次地安排层以创建亲子关系。 层的排列以与视图相似的方式影响其管理的视觉内容。 附加到视图的一组图层的层次结构反映了相应的视图层次结构。 您还可以将图层层次结构添加到层次结构中,以扩展您的app的可视内容,而不仅仅是您的视图。


Actions Let You Change a Layer’s Default Behavior - 让您更改图层默认行为的操作

使用动作对象实现隐含层动画,动作对象是实现预定义界面的通用对象。 Core Animation使用动作对象来实现通常与图层相关联的默认动画集。 您可以创建自己的操作对象来实现自定义动画,也可以使用它们来实现其他类型的行为。 然后,您将操作对象分配给图层的属性之一。 当该属性更改时,Core Animation将检索您的操作对象并告知它执行其操作。

后记

未完,待续~~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容