版本记录
版本号 | 时间 |
---|---|
V1.0 | 2017.12.17 |
前言
POP
框架是
1. Facebook Pop动画框架详细解析(一) —— 基本概览
框架基本架构
下面我们就看一下pop框架的基本架构,如下图所示。
从这上面可以看见这个框架还是很大的,源文件很多。
框架详细结构
接下来我们就详细的看一下这个框架。
1. 框架引用
和其他框架一样,引入一个头文件就可以包括所有功能。
POP.h
#ifndef POP_POP_H
#define POP_POP_H
#import <pop/POPDefines.h>
#import <pop/POPAnimatableProperty.h>
#import <pop/POPAnimation.h>
#import <pop/POPAnimationEvent.h>
#import <pop/POPAnimationExtras.h>
#import <pop/POPAnimationTracer.h>
#import <pop/POPAnimator.h>
#import <pop/POPBasicAnimation.h>
#import <pop/POPCustomAnimation.h>
#import <pop/POPDecayAnimation.h>
#import <pop/POPGeometry.h>
#import <pop/POPLayerExtras.h>
#import <pop/POPPropertyAnimation.h>
#import <pop/POPSpringAnimation.h>
#endif /* POP_POP_H */
2. 框架结构
POP 目前由四部分组成:1. Animations;2. Engine;3. Utility;4. WebCore
。,具体结构如下图所示。
POP 动画极为流畅,其秘密就在于这个
Engine
中的POPAnimator
里,POP 通过 CADisplayLink 高达 60 FPS 的特性,打造了一个游戏级的动画引擎。CADisplayLink
是类似 NSTimer 的定时器,不同之处在于,NSTimer 用于我们定义任务的执行周期、资料的更新周期,他的执行受到 CPU 的阻塞影响,而 CADisplayLink 则用于定义画面的重绘、动画的演变,他的执行基于 frames 的间隔。通过 CADisplayLink,Apple 允许你将 App 的重绘速度设定到和屏幕刷新频率一致,由此你可以获得非常流畅的交互动画,这项技术的应用在游戏中非常常见,著名的 Cocos-2D 也应用了这个重要的技术。
WebCore
里包含了一些从 Apple 的开源的网页渲染引擎里拿出的源文件,与 Utility 里的组件一并,提供了 POP 的各项复杂计算的基本支持。
参考文章
后记
未完,待续~~~