Swift - 使用CAKeyframeAnimation实现关键帧动画

1,CAKeyframeAnimation介绍

CAKeyframeAnimation可以实现关键帧动画,这个类可以实现某一属性按照一串的数值进行动画,就像是一帧一帧的制作出来一样。

2,使用样例(设置五个关键点坐标,图片依次按关键点移动)


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

let animation = CAKeyframeAnimation(keyPath: "position")

//设置5个位置点

let p1 = CGPointMake(0.0, 0.0)

let p2 = CGPointMake(300, 0.0)

let p3 = CGPointMake(0.0, 400)

let p4 = CGPointMake(300, 400)

let p5 = CGPointMake(150, 200)

//赋值

animation.values = [NSValue(CGPoint: p1), NSValue(CGPoint: p2),

    NSValue(CGPoint: p3), NSValue(CGPoint: p4), NSValue(CGPoint: p5)]

//每个动作的时间百分比

animation.keyTimes = [NSNumber(float: 0.0), NSNumber(float: 0.4),

    NSNumber(float: 0.6), NSNumber(float: 0.8), NSNumber(float: 1.0), ]

animation.delegate = self

animation.duration = 6.0

self.imageView.layer.addAnimation(animation, forKey: "Image-Move")

3,可以设置动画代理,监听开始和结束动作


1

2

3

4

5

6

7

8

9

animation.delegate = self

override func animationDidStart(anim: CAAnimation!) {

    println("动画开始")

}

override func animationDidStop(anim: CAAnimation!, finished flag: Bool) {

    println("动画结束")

}

时间: 2025-01-04 12:55:28

Swift - 使用CAKeyframeAnimation实现关键帧动画的相关文章

CAKeyframeAnimation——关键帧动画和动画组~

•关键帧动画,也是CAPropertyAnimation的子类,与CABasicAnimation的区别是: –CABasicAnimation只能从一个数值(fromValue)变到另一个数值(toValue),而CAKeyframeAnimation会使用一个NSArray保存这些数值 – •属性说明: –values:上述的NSArray对象.里面的元素称为“关键帧”(keyframe).动画对象会在指定的时间(duration)内,依次显示values数组中的每一个关键帧 –path:可

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

1.在iOS中核心动画分为几类: 基础动画(CABasicAnimation) 关键帧动画(CAKeyframeAnimation) 动画组(CAAnimationGroup) 转场动画(CATransition) 2.CAAnimation:核心动画的基础类,不能直接使用,负责动画运行时间,速度的控制,本身实现了CAMediaTiming协议 3.CAPropertyAnimation:属性动画也是基类(通过属性进行动画设置,注意是动画属性),不能直接使用. CABasicAnimation:

iOS:核心动画之关键帧动画CAKeyframeAnimation

CAKeyframeAnimation——关键帧动画 关键帧动画,也是CAPropertyAnimation的子类,与CABasicAnimation的区别是: –CABasicAnimation只能从一个数值(fromValue)变到另一个数值(toValue),而CAKeyframeAnimation会使用一个NSArray保存这些数值 – 属性说明: –values:上述的NSArray对象.里面的元素称为“关键帧”(keyframe).动画对象会在指定的时间(duration)内,依次显

core Animation之CAKeyframeAnimation(关键帧动画)

CABasicAnimation的区别是:CABasicAnimation只能从一个数值(fromValue)变到另一个数值(toValue),而CAKeyframeAnimation会使用一个NSArray保存这些数值 属性解析: values:就是上述的NSArray对象.里面的元素称为”关键帧”(keyframe).动画对象会在指定的时间(duration)内,依次显示values数组中的每一个关键帧 path:可以设置一个CGPathRef\CGMutablePathRef,让层跟着路径

IOS第18天(6,CAKeyframeAnimation关键帧动画)

******* #import "HMViewController.h" @interface HMViewController () @property (weak, nonatomic) IBOutlet UIView *redView; @end @implementation HMViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading t

缓动函数与关键帧动画

缓动函数与关键帧动画 缓动函数指定动画效果在执行时的速度,使其看起来更加真实. 现实物体照着一定节奏移动,并不是一开始就移动很快的.当我们打开抽屉时,首先会让它加速,然后慢下来.当某个东西往下掉时,首先是越掉越快,撞到地上后回弹,最终才又碰触地板. http://easings.net/zh-cn 缓动函数能让动画效果看起来更加真实:). iOS开发中,能用到缓动函数的地方就属于关键帧动画了,以下是我用关键帧动画做出来的模拟真实时钟效果的动画,效果相当逼真哦,只是这个gif图片的效果不好而已.

IOS动画(3)关键帧动画

关键帧动画中的时间系统,模型树和呈现树与基础动画一致,这里主要介绍关键帧动画的用法 CAKeyframeAnimation - (void)viewDidLoad { [super viewDidLoad]; CALayer *layer = [CALayer layer]; layer.bounds = CGRectMake(0, 0, 120, 120); layer.position = CGPointMake(100, 300); layer.cornerRadius = 60; lay

iOS基本动画/关键帧动画/利用缓动函数实现物理动画效果

先说下基本动画部分 基本动画部分比较简单, 但能实现的动画效果也很局限 使用方法大致为: #1. 创建原始UI或者画面 #2. 创建CABasicAnimation实例, 并设置keypart/duration/fromValue/toValue #3. 设置动画最终停留的位置 #4. 将配置好的动画添加到layer层中 举个例子, 比如实现一个圆形从上往下移动, 上代码: 1 //设置原始画面 2 UIView *showView = [[UIView alloc] initWithFrame

关键帧动画(2)心脏的跳动

// //  ViewController.m //  UI-NO-38-1基础动画实例1 // //  Created by 容伟 on 15/9/17. //  Copyright (c) 2015年 容伟. All rights reserved. // /*  CAKeyframeAnimation 也属于 CAPropertyAnimation  关键帧动画  可以让我们精准的控制动画效果  它的原理是 把动画序列里面比较关键的帧取出来  设置他的动画效果    values属性 执行