概述


  • 简介

    • 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. ASP.NET MVC数组模型绑定

    在ASP.NET MVC中使用Razor语法可以在视图中方便地展示数组,如果要进行数组模型绑定,会遇到索引断裂问题,如下示例: <input type="text" name ...

  2. jackson反序列化时忽略不需要的字段

    有时候,如果数据库表中增加一个字段,但返回的JSON字符串中含有我们并不需要的字段,那么当对应的实体类中不含有该字段时,会抛出一个异常,告诉你有些字段没有在实体类中找到.解决办法很简单,在声明Obje ...

  3. Understanding G1 GC Logs--转载

    原文地址:https://blogs.oracle.com/poonam/entry/understanding_g1_gc_logs Understanding G1 GC Logs By Poon ...

  4. iOS-高德地图-手动环境搭建

    一. 下载地图包 1. 链接地址: http://lbs.amap.com/api/ios-sdk/download/ 2.需要下载的包,并导入包 (1) MAMapKit-5.framework   ...

  5. 如何根据iframe内嵌页面调整iframe高宽续篇

    接着昨天的工作 如何根据iframe内嵌页面调整iframe高宽 来说,按照文章中说的第二种方法实现代码如下: 实现 A.com/detail/view 页面的iframe代码如下: <ifra ...

  6. java:[1,1] 需要class, interface或enum

    状态: cmd编译.java文件时报异常:java:[1,1] 需要class, interface或enum异常原因: 主要原因是java文件的编码问题. 在中文操作系统中,使用一贯的"j ...

  7. ASP.NET MVC5--Contains

    前言: * The Contains  method is run on the database, not the c# code above. On the database, Contains  ...

  8. 不可或缺 Windows Native (7) - C 语言: 指针

    [源码下载] 不可或缺 Windows Native (7) - C 语言: 指针 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 指针 示例cPointer.h #i ...

  9. JSChart_页面图形报表

    首先在页头的"head"中加上: $(document).ready(function() { //myData与colors变量  是做演示用的,可以直接赋值给myChart就可 ...

  10. 10个出色的NoSQL数据库

    http://www.infoq.com/research/nosql-databases?utm_source=infoqresearch&utm_campaign=lr-homepage ...