概述


  • 简介

    • 核心动画提供了一组非常强大的动画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

CoreAnimation-04-核心动画必备基础的更多相关文章

  1. IOS 动画专题 --iOS核心动画

    iOS开发系列--让你的应用“动”起来 --iOS核心动画 概览 通过核心动画创建基础动画.关键帧动画.动画组.转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等.在今天的文章里您可以看 ...

  2. IOS开发系列 --- 核心动画

    原始地址:http://www.cnblogs.com/kenshincui/p/3972100.html 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥i ...

  3. iOS:CALayer核心动画层

    CALayer:核心动画层 简介: Core Animation 是跨平台的,支持iOS环境和Mac OS X环境 学习核心动画之前,需要先理解CALayer,因为核心动画操作的对象不是UIView, ...

  4. iOS_核心动画(二)

    目 录: 一.Core Animation开发步骤 二.Core Animation的继承结构 三.CAAnimation常用的属性 四.CAPropertyAnimation(属性动画) 五.CAB ...

  5. iOS_核心动画CALayer(一)

    目 录: 一.核心动画简介 二.图层与视图之间的关系 三.CALayer的使用说明 四.CALayer的隐式动画属性 五.在CALayer上绘图 六.总结     一.核心动画简介 Core Anim ...

  6. iOS核心动画以及UIView动画的介绍

    我们看到很多App带有绚丽狂拽的特效,别出心裁的控件设计,很大程度上提高了用户体验,在增加了实用性的同时,也赋予了app无限的生命力.这些华丽的效果很多都是基于iOS的核心动画原理实现的,本文介绍一些 ...

  7. iOS开发UI篇—核心动画(基础动画)

    转自:http://www.cnblogs.com/wendingding/p/3801157.html 文顶顶 最怕你一生碌碌无为 还安慰自己平凡可贵 iOS开发UI篇—核心动画(基础动画) iOS ...

  8. iOS CoreAnimation 核心动画

    一 介绍 一组非常强大的动画处理API 直接作用在CALAyer上,并非UIView(UIView动画) CoreAnimation是所有动画的父类,但是不能直接使用,应该使用其子类 属性: dura ...

  9. 核心动画基础动画(CABasicAnimation)关键帧动画

    1.在iOS中核心动画分为几类: 基础动画(CABasicAnimation) 关键帧动画(CAKeyframeAnimation) 动画组(CAAnimationGroup) 转场动画(CATran ...

随机推荐

  1. 菜鸟学Windows Phone 8开发(2)——了解XAML

    本系列文章来源MSDN的 面向完全新手的 Windows Phone 8 开发 主要是想通过翻译本系列文章来巩固下基础知识顺带学习下英语和练习下自己的毅力 本文地址:http://channel9.m ...

  2. Hadoop第7周练习—MapReduce进行数据查询和实现推简单荐系统

    1.1 1.2 :计算员工相关 2.1 内容 :求各个部门的总工资 :求各个部门的人数和平均工资 :求每个部门最早进入公司的员工姓名 :求各个城市的员工的总工资 :列出工资比上司高的员工姓名及其工资 ...

  3. 远程方法调用(RMI)原理与示例

    RMI介绍 远程方法调用(RMI)顾名思义是一台机器上的程序调用另一台机器上的方法.这样可以大致知道RMI是用来干什么的,但是这种理解还不太确切.RMI是Java支撑分布式系统的基石,例如著名的EJB ...

  4. mysql按汉语拼音首字母排序

      如果数据表table的某字段name的字符编码是utf8_general_ci :   SELECT *  FROM `table` ORDER BY convert(name USING gbk ...

  5. node-gyp rebuild 卡住?

    最近 npm install 时候经常遇到在 node-gyp rebuild 那里卡很久的情况(大于十分钟),于是研究了一下输出的错误日志解决了这个问题,在这里分享一下. 首先,请检查 node-g ...

  6. 开源一个基于天天团购的团购app

    可能大家都知道天天团购开源系统,一个做团购的开源项目很赞,前些日子做了基于天天团购系统做的团购客户端和移动端服务器!源代码放出,有了解的可以看看,希望收益! 先说服务器:app的服务器,基于天天团购的 ...

  7. mysql: you can't specify target table 问题解决

    首先创建一个表: CREATE TABLE `t1` ( `id` ) NULL DEFAULT NULL, `name` ) NULL DEFAULT NULL ) 插入几条数据: mysql> ...

  8. MVC。Action方法,常用的返回类型有几种?

    常用的: 1,string,直接返回响应报文字符串 public ActionResult test(){return "哈哈";}2.ViewResult,ActionResul ...

  9. wpf 下面用MVVC的RelayCommand命令引发的一个异常

    具体解决方法参见我的博问:https://q.cnblogs.com/list/myquestion

  10. 关于URL、Web的一些概念

    关于URL ★ 书写路径时,网络文件用斜杠“/”划分不同层级,本地文件管理系统用反斜杠“\”,分隔不同层级:                               如下图示   ★  绝对/相对 ...