概述


  • 简介

    • CABasicAnimation是抽象类CAPropertyAnimation的子类,可以直接使用
    • CABasicAnimation又称基本动画,从fromValue到toValue按照指定的动画属性执行动画
  • 注意事项
    • 一个动画对象可以同时添加到多个图层上
    • 对动画的配置必须放在动画添加到图层之前,否则不会呈现指定的动画效果

基本动画常用的属性


  • CABasicAnimation的属性

    • fromValue(id),执行动画属性的起始值。若不指定,则以该属性当前的值作为fromValue
    • toValue(id),执行动画属性的目的值
    • byValue(id),步进值
  • CAMediaTiming协议的属性
    • duration(CFTimeInterval),单次动画的执行时间
    • repeatCount(float),重复次数
    • autoreverses(BOOL),是否恢复到动画开始状态(以动画的方式)

基本动画的执行步骤


  • 创建CABasicAnimation动画对象
  • 指定执行动画的keyPath属性
  • 设置动画起始值与目的值
  • 配置动画的其他属性
  • 将动画添加到要执行动画的图层上

通过基本动画模拟心跳


  • 实现步骤

    • 通过storyboard创建需要执行动画的控件,并拥有它们

      @property (weak, nonatomic) IBOutlet UIView *redView;
      @property (weak, nonatomic) IBOutlet UIImageView *imageView;
    • 添加动画

      - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
      {
      //创建基本动画属性
      CABasicAnimation *animation = [CABasicAnimation animation];
      //指定执行动画的keyPath属性
      animation.keyPath = @"transform.scale";
      //设置动画的起始值与目的值
      animation.fromValue = @1.0;
      animation.toValue = @0.8; /****配置动画的行为****/
      //以动画的方式回复到fromValue
      animation.autoreverses = YES;
      //单次动画的执行时间,据说每分钟心跳72次
      animation.duration = 60 / 72;
      //动画的重复次数
      animation.repeatCount = MAXFLOAT;
      //取消动画反弹效果
      animation.removedOnCompletion = NO;
      animation.fillMode = kCAFillModeForwards; //将动画添加到图层上
      [self.redView.layer addAnimation:animation forKey:nil];
      [self.imageView.layer addAnimation:animation forKey:nil];
      }
    • 执行效果如图:

    • 若不设置fromValue值,程序将会有Bug,即多次点击屏幕时动画停止,如图

      • 原因:若不指定fromValue,则以该属性当前的值作为fromValue
    • 若不取消反弹效果,动画结束,会瞬间回到fromValue状态,如图

    • 若指定autoreverses为YES,会以动画方式回到fromValue状态,如图

CoreAnimation-05-CABasicAnimation的更多相关文章

  1. CoreAnimation

    CoreAnimation 1.CABasicAnimation // position CABasicAnimation *ba = [CABasicAnimation animationWithK ...

  2. 【原】iOSCoreAnimation动画系列教程(二):CAKeyFrameAnimation【包会】

    在上一篇专题文章[原]iOSCoreAnimation动画系列教程(一):CABasicAnimation[包会]中我们学习了iOS核心动画CoreAnimation中CABasicAnimation ...

  3. Core Animation之CAKeyframeAnimation

    在上一篇专题文章中我们学习了iOS核心动画CoreAnimation中CABasicAnimation动画的使用方法.CABasicAnimation已经可以应付一些比较简单的应用场景了,比如view ...

  4. iOS经常使用类别

    我们发现,慢慢积累了很多自己写的各种类别的. .今天,无私.张贴 1.NSDateFomatter @interface NSDateFormatter (MyCategory) + (id)date ...

  5. CoreAnimation 核心动画 / CABasicAnimation/ CAKeyframeAnimation

    - (void)createBaseAnimation{ //基础动画 CABasicAnimation *animation = [CABasicAnimation animation]; anim ...

  6. iOS关于CoreAnimation动画知识总结

    一:UIKit动画 在介绍CoreAnimation动画前先简单介绍一下UIKit动画,大部分简单的动画都可以使用UIKit动画实现,如果想实现更复杂的效果,则需要使用Core Animation了: ...

  7. CoreAnimation笔记

    核心动画继承结构 CoreAnimation Core Animation是直接作用在CALayer上的(并非UIView上)非常强大的跨Mac OS X和iOS平台的动画处理API,Core Ani ...

  8. iOS CoreAnimation详解(一) 有关Layer的动画

    以前由于项目需要 也写了一些动画 ,但是知识不系统,很散.这段时间趁着项目完成的空袭,来跟着大神的脚步系统的总结一下iOS中Core Animation的知识点. 原博客地址:http://blog. ...

  9. iOS CoreAnimation 核心动画

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

  10. ios基础篇(二十五)—— Animation动画(UIView、CoreAnimation)

    Animation主要分为两类: 1.UIView属性动画 2.CoreAnimation动画 一.UIView属性动画 UIKit直接将动画集成到UIView类中,实现简单动画的创建过程.UIVie ...

随机推荐

  1. c# File 操作

    //1.---------文件夹创建.移动.删除--------- //创建文件夹 Directory.CreateDirectory(Server.MapPath("a")); ...

  2. asynchronous-logging-with-log4j-2--转

    原文地址:https://dzone.com/articles/asynchronous-logging-with-log4j-2 Log4J 2 is a logging framework des ...

  3. html5 audio/video 的那些坑

    当我最近项目用到audio的时候,我们用到了jPlayer作为三方库. 功能实现了,暂停播放,进度条什么的,都很顺利的搞定了.后来考虑到当网速过慢时需要给播放按钮一个载入动画,然后就一发不可收拾了. ...

  4. HMM 自学教程(三)隐藏模式

    本系列文章摘自 52nlp(我爱自然语言处理: http://www.52nlp.cn/),原文链接在 HMM 学习最佳范例,这是针对 国外网站上一个 HMM 教程 的翻译,作者功底很深,翻译得很精彩 ...

  5. Mysql学习笔记(十)存储过程与函数 + 知识点补充(having与where的区别)

    学习内容:存储程序与函数...这一章学的我是云里雾里的... 1.存储过程...   Mysql存储过程是从mysql 5.0开始增加的一个新功能.存储过程的优点其实有很多,不过我觉得存储过程最重要的 ...

  6. [转]AutoResetEvent 与 ManualResetEvent区别

    在C#多线程编程中,这两个类几乎是不可或缺的,他们的用法/声明都很类似,那么区别在哪里了? Set方法将信号置为发送状态 Reset方法将信号置为不发送状态 WaitOne等待信号的发送 其实,从名字 ...

  7. IOS开发UI基础storyboard相关概念的认识

    本文主要介绍一些基本的概念 为后面的学习做个准备 需要了解的知识点有以下几个方面: storyboard文件的认识 IBAction 和IBOutlet UIViewController控制器的认识 ...

  8. mysql 行锁一则

       CREATE TABLE `t1` (  `id` int(11) NOT NULL DEFAULT '0',  `name` varchar(20) DEFAULT NULL,  PRIMAR ...

  9. java.lang.IllegalArgumentException 不合法的参数异常

    报错内容: IllegalArgumentException 不合法的参数异常 十二月 06, 2016 10:06:56 上午 org.apache.catalina.core.StandardWr ...

  10. 2015年百度之星初赛(1) --- B 找连续数

    找连续数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...