• Core Animation


    CAAnimation类,是一个抽象类。遵循CAMediaTiming协议和CAAction协议!

    • CAMediaTiming协议 可以调整时间,包括持续时间,速度,重复次数。
    • CAAction协议 可以通过响应动作的方式来显示动画。

    CAAnimation有很多派生类

    1.CABasicAnimation

    基本动画:提供了对单一动画的实现。设定CALayer的keyPath相应属性的初始值、结束值、动画的时间

    2.CAKeyframeAnimation

    关键桢动画:可以定义行动路线。设定CALayer的frame的初始值、中间n个关键点的frame、结束值、动画的时间

    上面两种都是CAPropertyAnimation的子类

    3.CAAnimationGroup

    动画组:允许多个动画同时播放。

    4.CATransition

    转场动画:提供渐变效果:(推拉push效果,消退fade效果,揭开reveal效果)

    5.CAConstraint 约束类,在布局管理器类中用它来设置属性。

    6.CAConstraintLayoutManager 约束布局管理器,是用来将多个CALayer进行布局的.各个CALayer是通过名称来区分,而布局属性是通过CAConstraint来设置的。

    7.CATransaction 事务类,可以对多个layer的属性同时进行修改.它分隐式事务,和显式事务。

     CAAnimation属性

    @property(retain) id delegate 为CAAnimation设置代理。默认为nil。
    注意:一个CAAnimation实例,不能设置delegate为self。会引起循环引用。
     
    @property(getter=isRemovedOnCompletion) BOOL removedOnCompletion
    设置是否动画完成后,动画效果从设置的layer上移除。默认为YES。
     
    @property(retain) CAMediaTimingFunction *timingFunction
    设置动画的“时机”效果。就是动画自身的“节奏”:比如:开始快,结束时变慢;开始慢,结束时变快;匀速;等,在动画过程中的“时机”效果。
     
    + (id)animation
    创建并返回一个CAAnimation实例。
     
    + (id)defaultValueForKey:(NSString *)key
    根据属性key,返回相应的属性值。
     

    CAAnimation实例方法

    - (BOOL)shouldArchiveValueForKey:(NSString *)key
    返回指定的属性值是否可以归档。
    key:指定的属性。
    YES:指明该属性可以被归档;NO:不能被归档。

    CAAnimation协议方法

    - (void)animationDidStart:(CAAnimation *)theAnimation
    动画开始时,执行的方法。
    theAnimation:正在执行动画的CAAnimation实例。
     
    - (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag
    动画执行完成或者动画为执行被删除时,执行该方法。
    theAnimation:完成或者被删除的动画实例
    flag:标志该动画是执行完成或者被删除:YES:执行完成;NO:被删除。
  • 相关阅读:
    (五)STL序列容器(deque)
    (四)STL序列容器(vector)
    (三)STL序列容器(array)
    (六)c语言之指针与函数、数组用法
    (五)c语言之内存分配
    (三)c++模板函数与函数模板详解
    Linux基础(03)gdb调试
    Linux基础(02)MakeFile的创建和使用
    Linux基础(01)开发环境的搭建
    Windows的socket编程
  • 原文地址:https://www.cnblogs.com/xs514521/p/5192767.html
Copyright © 2020-2023  润新知