源码

首页 » 归档 » 源码 » CAAnimation wiki-ios学习从入门到精通尽在姬长信

CAAnimation wiki-ios学习从入门到精通尽在姬长信

分享最热门的ios资讯

CAAnimation是一个动画抽象类,但是不要直接使用CAAnimation类,而是使用它的子类,如上图所示展示的就是它的家族成员子类们,CAAnimation遵守CAMediaTimingCAAction协议,它是直接作用在CALayer上的,并非UIView上,动画执行过程不在主线程上进行,所以不会阻塞主线程。先来看看CAnimation都界说了哪些属性,要领。

+ animation初始化一个CAAnimation 工具

+ (instancetype)animation;---**`CAAnimation`**是一个动画抽象类,但是不要直接使用`CAAnimation`类,
而是使用它的子类,如上图所示展示的就是它的家族成员子类们,
`CAAnimation`遵守`CAMediaTiming`和`CAAction`协议,它是直接作用在`CALayer`上的,
并非`UIView`上,动画执行过程不在主线程上进行,所以不会阻塞主线程。
先来看看`CAnimation`都界说了哪些属性,要领。**`+ animation`**初始化一个CAAnimation 工具
  • (instancetype)animation;
    ```

+defaultValueForKey:  - shouldArchiveValueForKey:后者通过传入一个要害字对动画工具 进行序列化当地存储,而且返回是否成功。然后使用相同的要害字调用前者来获取这个持久化的工具。

+ (nullable id)defaultValueForKey:(NSString *)key;
- (BOOL)shouldArchiveValueForKey:(NSString *)key;

Timing Function (CAMediaTimingFunction)
Timing Function会被用于变化起点到终点之间的插值计算,形象的说是Timing Function决定了动画运行的节奏(Pacing),比如均匀变化(相同时间变化量相同),先快后慢,先慢后快还是不停变化速度。
Timing Function对应的类是CAMediaTimingFunction

@property(nullable, strong) CAMediaTimingFunction *timingFunction;

CAMediaTimingFunction提供了两种获得时间函数的要领,一种是使用系统提供的五种时间函数,一种是自界说的时间函数。先来看第一种:

+ (id)functionWithName:(NSString *)name;

设置差别的name就能调用差别的系统提供的时间函数,name的可选值有:

/** Timing function names. **/

//线性 :匀速(速度不变,加速度为0)
A_EXTERN NSString * const kCAMediaTimingFunctionLinear
    __OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);

//渐进:动画缓慢进入,然后加速到达目的地
CA_EXTERN NSString * const kCAMediaTimingFunctionEaseIn
    __OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);

//渐出:动画全速进入,然后再减速到达目的地
CA_EXTERN NSString * const kCAMediaTimingFunctionEaseOut
    __OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);

//渐进渐出:动画缓慢进入,中间加速,然后减速到达目的地,这个是默认的动画行为
CA_EXTERN NSString * const kCAMediaTimingFunctionEaseInEaseOut
    __OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);

CA_EXTERN NSString * const kCAMediaTimingFunctionDefault
    __OSX_AVAILABLE_STARTING (__MAC_10_6, __IPHONE_3_0);

我们来看下系统提供的这五种时间函数的具体效果:(Ease的意思是缓和)

  • Ease in (kCAMediaTimingFunctionEaseIn
    ):

用意志战胜身体的惰性!

(0)

本文由 姬長信 创作,文章地址:https://blog.isoyu.com/archives/1196.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:9 月 18, 2016 at 11:59 上午

关键词:

热评文章

发表回复

[必填]

我是人?

提交后请等待三秒以免造成未提交成功和重复