zoukankan      html  css  js  c++  java
  • OC

    概述


    • 简介

      • 核心动画提供了一组非常强大的动画API,通过该组API可以高效的实现绝大部分绚丽的动画效果
    • 注意事项

      • 核心动画的操作在子线程中执行,不会阻塞主线程
      • 核心动画直接作用与CALayer对象上,不是UIView对象上
    • 核心动画与UIView动画的区别

      • 核心动画不会改变控件的frame属性,显示的只是一种假象
      • UIView动画会改变控件的frame属性,显示的是控件真实地frame属性

    核心动画类


    • 核心动画相关类的关系图

      • 此图来源官方文档,不知为何右下角不是CAKeyframeAnimation,而是协议。CAKeyframeAnimation为CAPropertyAnimation的可直接使用子类
    • CAAnimation与CAPropertyAnimation

      • 二者都是抽象类,不可以直接使用,需要使用其子类
      • CAAnimation可直接使用的子类,

        • CAAnimationGroup,组动画
        • CATransaction,转场动画
      • CAPropertyAnimation可直接使用的子类

        • CABasicAnimation,基本动画
        • CAKeyframeAnimation,关键帧动画

    CAAnimation类


    • 3个重要的属性

      • timingFunction(CAMediaTimingFunction *),速度控制函数
      • delegate(id),动画代理
      • removedOnCompletion(BOOL),动画执行完毕是否将其从图层上移除

    CAAnimation的代理方法


    • 注意

      • CAAnimation的代理方法是以NSObject分类的方式实现的,如图

    • 代理方法

      • 动画开始时调用
      - (void)animationDidStart:(CAAnimation *)anim;
      • 动画结束时调用
      - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag;

    CAMediaTiming协议


    • 常用属性如图中属性

      • beginTime(CFTimeInterval),开始时间
      • duration(CFTimeInterval),单次动画的执行时间
      • speed(float),动画速度
      • timeOffset(CFTimeInterval),从时间偏移量timeOffset开始执行动画,并将timeOffset之前的动画压缩并拼接到尾部
      • repeatCount(float),重复次数
      • repeatDuration(CFTimeInterval),动画的重复时间,与repeatCount两者选择时间最短者
      • autoreverses(BOOL),是否恢复到动画开始状态(以动画的方式)
      • fillMode(NSString *),动画的填充模式

    动画的填充模式


    • 注意

      • 若要使填充模式有效,通常设置动画的removedOnCompletion属性为NO
    • 4种模式

      • kCAFillModeForwards,动画结束后,layer保持动画结束的状态
      • kCAFillModeBackwards,动画加入到layer中,立即进入动画初始状态等待动画开始执行
      • kCAFillModeBoth,同时具备以上两种模式
      • kCAFillModeRemoved,动画结束后,layer会恢复到原来的状态

    动画的速度控制函数


    • kCAMediaTimingFunctionLinear,匀速
    • kCAMediaTimingFunctionEaseIn,缓慢进入,加速离开
    • kCAMediaTimingFunctionEaseOut,全速进入,减速到达目标地点
    • kCAMediaTimingFunctionEaseInEaseOut,缓慢进入,中途加速,减速到达目标地点
    • kCAMediaTimingFunctionDefault,默认速度,即kCAMediaTimingFunctionEaseInEaseOut
  • 相关阅读:
    windows7下检测耳机麦克拔插(转)
    windows实时监测热插拔设备的变化(转)
    Windows ToolTips简要介绍(转)
    c /c++变参函数(转)
    SQL的四种连接查询(转)
    CRichEditCtrl 输入字符串长度限制
    MFC 将 '当前工作路径' 改为 'exe所在路径'(转)
    第5章 文本编程
    第4章 简单绘图
    VC++中有关句柄和指针及其转换(转)
  • 原文地址:https://www.cnblogs.com/funny11/p/4966418.html
Copyright © 2011-2022 走看看