Core Animation

参考

CoreAnimation 简介

CoreAnimation 可用在 Mac OS X和iOS平台
CoreAnimation 的动画执行过程都是在后台操作的,不会阻塞主线程。
CoreAnimation 是直接作用在CALayer 上的,并不是UIView。
用一张图来简要介绍一下核心动画成员之间的关系。
Core Animation_第1张图片
640.jpeg

关于Animation 的架构

Core Animation_第2张图片
640.jpeg

核心动画与UIView动画的区别

    核心动画的一切都是假象,并不会真是改变layer的值
    UIView 真实改变属性才能有动画
    使用场景:
        UIView 用在需要交互的地方
        核心动画用在不需要交互的地方。

CAAnimation 子类

关键帧动画

CAKeyframeAnimation 简介
        关键帧动画,是CAPropertyAnimation的子类
        与 CABasicAniamtion 的区别是CABasicAniamtion是从fromValue 到toValue 两个值的变化,而 CAKeyframeAnimation 可以使用 NSArray 来保存这些数值。
    属性说明:
        values:NSArray 对象,里面的元素就是“关键帧”,动画会在指定的时间内,依次显示 values 数组中的每一个关键帧。
        path:可以设置CGPathRef、CGMutablePathRef,让图层按照轨迹移动,path只对CALayer的 anchorPoint 和 point 起作用。如果设置了path, 那么values将被忽略。
        keyTimes:关键帧指定对应的时间点,取值范围从0~1,keyTimes中的每一个时间值对应values中的每一帧,如果没有设置,时间是平分的。
        CABasicAniamtion 可看做 只有两个关键帧的CAKeyframeAnimation

动画组CAAnimationGroup

CAAnimationGroup
        是 CAAnimation 的子类,可以保存一组动画对象,将 CAAnimationGroup 对象加入层之后,族中所有的动画对象可以同时并发运行。
    属性说明:
        animations:保存一组动画对象的NSArray。
        默认情况下,一组动画对象是同时运行的,也可以通过设置动画对象的 beginTimer 属性来更改动画的开始时间。

转场动画CATransition

    CATransition
        为层提供移出屏幕和移入屏幕的动画效果。
        UINavigationController就是通过CATransition实现了将控制器推入屏幕的动画效果
    动画属性:
        type:动画过渡类型
        subtype:动画过渡方向
        startProgress:动画起点
        endProgress:动画终点

    CAAnimation (基类)所有动画的父类,不能直接使用
        CAPropertyAnimation (属性动画)也是基类,不可直接使用—>通过属性值的改变产生动画效果
            CABasicAnimation (基础动画)只能是两个点之间的变化
                CASpringAnimation
            CAKeyFrameAnimation (关键帧动画)可以添加多个点的变化 或者路径
        CAAnimationGRoup(动画组)可以同时添加多种动画,达到预期效果
        CATransition(转场动画 )给视图切换的时候 添加动画效果

你可能感兴趣的:(Core Animation)