分享最热门的ios资讯
CAAnimation
是一个动画抽象类,但是不要直接使用CAAnimation
类,而是使用它的子类,如上图所示展示的就是它的家族成员子类们,CAAnimation
遵守CAMediaTiming
和CAAction
协议,它是直接作用在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
):
用意志战胜身体的惰性!
本文由 姬長信 创作,文章地址:https://blog.isoyu.com/archives/1196.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:9 月 18, 2016 at 11:59 上午