核心动画(基础动画)

作者: laitys | 来源:发表于2016-06-03 18:07 被阅读121次

一、简单介绍
项目中常用的动画效果基本使用CABasicAnimation就能完成,它CAPropertyAnimation的子类
属性解析:

   fromValue:keyPath相应属性的初始值
   toValue:keyPath相应属性的结束值

核心动画是一种假象动画
随着动画的进行,在长度为duration的持续时间内,keyPath相应属性的值从fromValue渐渐地变为toValue
如果fillMode=kCAFillModeForwards和removedOnComletion=NO,那么在动画执行完毕后,图层会保持显示动画执行后的状态。但在实质上,图层的属性值还是动画执行前的初始值,并没有真正被改变。
比如,CALayer的position初始值为(0,0),CABasicAnimation的fromValue为(10,10),toValue为(100,100),虽然动画执行完毕后图层保持在(100,100)这个位置,实质上图层的position还是为(0,0)

  • Core Animation的使用步骤*
    1.使用它需要先添加QuartzCore.framework框架和引入主头文件<QuartzCore/QuartzCore.h>(iOS7不需要)
    2.初始化一个CAAnimation对象,并设置一些动画相关属性
    3.通过调用CALayer的addAnimation:forKey:方法增加CAAnimation对象到CALayer中,这样就能开始执行动画了
    4.通过调用CALayer的removeAnimationForKey:方法可以停止CALayer中的动画

二、实例

  • 创建动画对象

      CABasicAnimation *rotationAnimation = [CABasicAnimation   animationWithKeyPath:@"transform.rotation.y"];
       rotationAnimation.toValue = @(2 * M_PI);
       rotationAnimation.repeatCount = MAXFLOAT;
       rotationAnimation.duration = 5;
       rotationAnimation.removedOnCompletion = NO;
    
  • 通过animationWithKeyPath设置不同动画效果
    常用KepPath动画效果
    transform.scale = 比例缩放
    transform.scale.x = 宽的比例缩放
    transform.scale.y = 高的比例缩放
    transform.rotation = 平面的旋转
    transform.rotation.y =Y方向旋转
    transform.rotation.x = X方向旋转
    opacity = 透明度变化

  • 把动画对象添加到你想运用动画的空间图层上
    [self.iconView.layer addAnimation:rotationAnimation forKey:nil];

三、小结

所有动画对象的父类,负责控制动画的持续时间和速度,是个抽象类,不能直接使用,应该使用它具体的子类
属性解析:(红色代表来自CAMediaTiming协议的属性)
duration:动画的持续时间
repeatCount:动画的重复次数
repeatDuration:动画的重复时间
removedOnCompletion:默认为YES,代表动画执行完毕后就从图层上移除,图形会恢复到动画执行前的状态。如果想让图层保持显示动画执行后的状态,那就设置为NO,不过还要设置fillMode为kCAFillModeForwards
fillMode:决定当前对象在非active时间段的行为.比如动画开始之前,动画结束之后
beginTime:可以用来设置动画延迟执行时间,若想延迟2s,就设置为CACurrentMediaTime()+2,CACurrentMediaTime()为图层的当前时间
timingFunction:速度控制函数,控制动画运行的节奏
delegate:动画代理

相关文章

  • iOS基础 - 核心动画(转)

    iOS基础 - 核心动画 一、核心动画 l核心动画基本概念 l基本动画 l关键帧动画 l动画组 l转场动画 lCo...

  • iOS-核心动画

    前言:核心动画的基础知识,包括基本动画、帧动画、转场动画相关知识。 一、核心动画(Core Animation) ...

  • IOS动画学习小记(3)-Core Animation-基础动画

    Core Animation - 基础动画 CAAnimation:核心动画的基础类(不能直接使用),负责动画运行...

  • iOS 核心动画~基础动画

    核心动画之基础动画(CABasicAnimation) 概述 基础动画主要用于完成对象指定动画属性两个Value之...

  • iOS Core Animation (一) 基础动画

    iOS核心动画Core Animation分为几类:基础动画、关键帧动画、动画组、转场动画。关系大致如下图: CA...

  • iOS的layer和动画

    一、核心动画 CAMediaTiming协议 CAAnimation 核心动画基础类,不能直接使用 CAPrope...

  • iOS-Core Animation动画详解

    目录 一 Core Animation 二 核心动画2.1 基础动画2.2 关键帧动画2.3 动画组2.4 转场动...

  • 细说CoreAnimation

    前言: 核心动画是iOS中一个渲染和动画的基础设施,你可以用它来为你的应用做基础的动画效果。在核心动画中,你要做的...

  • iOS动画

    iOS动画分为基础动画和核心动画 本文发布在http://he8090.cn/2016/07/18/iOS动画/...

  • 核心动画(基础动画)

    一、简单介绍项目中常用的动画效果基本使用CABasicAnimation就能完成,它CAPropertyAnima...

网友评论

    本文标题:核心动画(基础动画)

    本文链接:https://www.haomeiwen.com/subject/yafldttx.html