Core Animation1-简介

- Core Animation的使用步骤
  • 首页的有一个CALayer
  • 初始化一个CAAnimation对象,并设置一些动画相关属性
  • 通过调用CALayeraddAnimation:forKey:方法,增加CAAnimation对象到CALayer中,这样就能开始执行动画了
  • 通过调用CALayerremoveAnimationForKey:方法可以停止CALayer中的动画

CAAnimation

  • 从前面的叙述可以看出,想要执行动画,就必须初始化一个CAAnimation对象
  • 其实,一般情况下,我们看到的是CAAnimation的子类,因此,先大致看看CAAnimation的集成结构
    image.png
CAAnimation的常用属性
  • CAAnimation是所有动画类的父类,但是它不能直接使用,应该使用它的子类

  • duration:动画持续的时长

  • repeatCount:动画重复的次数 ,无限循环可以设置HUGE_VALF或者MAXFLOAT

  • removedOnCompletion :默认为YES,代表动画执行完毕后就从图层上移除,图形会恢复到动画执行前的状态。如果想让图层保持显示动画执行后的状态,那级设置为NO ,不过还要设置fillModelKCAFillModeFowards

  • fillMode: 决定当前对象在非active时间段的行为,比如动画开始之前或者动画结束之后

  • timingFunction:控制动画运行的节奏

    • kCAMediaTimingFunctionLinear(线性):匀速,给你一个相对静态的感觉
    • kCAMdeiaTimingFunctionEaseIn(渐进):动画缓慢进入,然后加速离开
    • kCAMediaTimingFunctionEasOut(渐出) :动画全速进入,然后减速的到达目的地
    • kCAMediaTimingFunctionEaseInEaseOut (渐进渐出):动画缓慢的进入,中间加速,然后减速的到达目的地。这个是默认的动画行为
  • fillModel属性值(要想fillModel有效,最好设置removedOnComplection = NO)

    • kCAFillModeRemoved这个是默认值,也就是说当动画开始前和动画结束后,动画对layer都没有影响,动画结束后,layer会恢复到之前的状态
    • kCAFillModelForwards当动画结束后,layer会一直保持着动画最后的状态
    • kCAFillModeBackwards 在动画开始前,只需要将动画加入了一个layer,layer便立即进入动画的初始状态并等待动画开始。
    • kCAFillModeBoth 这个其实就是上面两个的合成.动画加入后开始之前,layer便处于动画初始状态,动画结束后layer保持动画最后的状态
  • delegate :动画代理,用来监听动画的执行过程

  • beiginTime: 可以用来设置动画延迟执行时间,若想延迟2s,就设置为CACurrentMediaTime()+2 CACurrentMediaTime()为图层的当前时间
    代理对象需要实现的方法有:

@interface NSObject (CAAnimationDelegate)
// 动画开始执行的时候触发这个方法
- (void)animationDIdStart:(CAAnimation *)anim;
// 动画执行完毕的时候触发这个方法
- (void) animationDidStop:(CAAnimation *)anim finished:(BOOL) flag;
  • 上面介绍的所有属性都是属于·CAAnimation的,因此,CAAnimation`的所有子类都可以使用
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 CALayer IOS SDK详解之CALayer(一) http://doc.okbase.net/Hell...
    Kevin_Junbaozi阅读 10,590评论 3 23
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,531评论 5 13
  • 书写的很好,翻译的也棒!感谢译者,感谢感谢! iOS-Core-Animation-Advanced-Techni...
    钱嘘嘘阅读 6,826评论 0 6
  • 在iOS实际开发中常用的动画无非是以下四种:UIView动画,核心动画,帧动画,自定义转场动画。下面我们逐个介绍。...
    4b5cb36a2ee2阅读 2,924评论 0 0
  • 在iOS实际开发中常用的动画无非是以下四种:UIView动画,核心动画,帧动画,自定义转场动画。 1.UIView...
    请叫我周小帅阅读 8,381评论 1 23