iOS开发技巧iOS 好文Swifty Coding

CoreAnimation

2015-07-18  本文已影响17529人  Ljson

Core Animation是直接作用在CALayer上的(并非UIView上)非常强大的跨Mac OS X和iOS平台的动画处理API,Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程。

核心动画继承结构

核心动画继承结构

注意:核心动画中的虚类不能使用,而应该使用他们子类中的实类。

Core Animation的使用步骤

如果是Xcode6之前的版本,要导入<QuartzCore/QuartzCore.h>框架(并不存在什么CoreAnimation 框架)

开发步骤:

  1. 首先得有CALayer(因为CoreAnimation是作用在CALayer上的)

  2. 初始化一个CAAnimation对象,并设置一些动画相关属性

  3. 通过调用CALayer的addAnimation:forKey:方法,增加CAAnimation对象到CALayer中,这样就能开始执行动画了

  4. 通过调用CALayer的removeAnimationForKey:方法可以停止CALayer中的动画

CAAnimation中的一些属性:

CAAnimation代理方法

CAAnimation在分类中定义了代理方法。是给NSObject添加的分类,所以任何对象,成为CAAnimation的代理,都可以。

CALayer上动画的暂停和恢复

CABasicAnimation——基本动画

CAKeyframeAnimation——关键帧动画

CABasicAnimation可看做是只有2个关键帧的CAKeyframeAnimation

CAAnimationGroup——动画组

默认情况下,一组动画对象是同时运行的,也可以通过设置动画对象的beginTime属性来更改动画的开始时间

转场动画——CATransition

1. 单视图

+ (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion;

2. 双视图

+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion;

3. 自己写转场

转场动画的类型(NSString *type)

转场动画的方向(NSString *subtype)

CoreAnimation中的CALayer

1. CAReplicatorLayer:复制图层

顾名思义,复制图层就是用来复制的。它会将自己的子图层进行复制,连同子layer上的动画会一起复制。

2. CAShapeLayer:形状图层

根据形状,绘制内容的图层

3. CAGradientLayer:渐变图层

用这个图层,可以做颜色的渐变

最后:

上一篇下一篇

猜你喜欢

热点阅读