Swift - 使用CAKeyframeAnimation实现关键帧动画
1,CAKeyframeAnimation介绍
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | // // ViewController.swift // CAKeyframeAnimation // // Created by Wengrp on 16/12/1. // Copyright © 2016年 wengrenpu. All rights reserved. // import UIKit class ViewController: UIViewController { var imageView: UIView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. let animation = CAKeyframeAnimation(keyPath: "position") //设置5个位置点 let p1 = CGPointMake(100.0, 100.0) let p2 = CGPointMake(300, 100.0) let p3 = CGPointMake(100.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 imageView = UIView(frame: CGRectMake(100, 100, 100, 100)) imageView.backgroundColor = UIColor.cyanColor() imageView.layer.addAnimation(animation, forKey: "Image-Move") self.view.addSubview(imageView) } override func animationDidStart(anim: CAAnimation) { print("动画开始") } override func animationDidStop(anim: CAAnimation, finished flag: Bool) { print("动画结束") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } | 
3,可以设置动画代理,监听开始和结束动作
| 1 2 3 4 5 6 7 8 9 | animation.delegate = selfoverridefuncanimationDidStart(anim: CAAnimation!) {    println("动画开始")}overridefuncanimationDidStop(anim: CAAnimation!, finished flag: Bool) {    println("动画结束")} | 
PS:苹果官网API - CAKeyframeAnimation
Swift - 使用CAKeyframeAnimation实现关键帧动画的更多相关文章
- 核心动画基础动画(CABasicAnimation)关键帧动画
		1.在iOS中核心动画分为几类: 基础动画(CABasicAnimation) 关键帧动画(CAKeyframeAnimation) 动画组(CAAnimationGroup) 转场动画(CATran ... 
- IOS开发-属性动画和关键帧动画的使用
		CAMediaTiming是一个协议(protocol),CAAnimation是所有动画类的父类,但是它不能直接使用,应该使用它的子类. 继承关系: CoreAnmiation 核心动画 简写CA ... 
- Core Animation 动画的使用:关键帧动画、基础动画、动画组
		首先让我们了解下什么是 Core Animation,Core Animation 为核心动画,他为图形渲染和动画提供了基础.使用核心动画,我们只需要设置起点.终点.关键帧等一些参数,剩下的工作核心动 ... 
- ios基础动画、关键帧动画、动画组、转场动画等
		概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画 ... 
- iOS:核心动画之关键帧动画CAKeyframeAnimation
		CAKeyframeAnimation——关键帧动画 关键帧动画,也是CAPropertyAnimation的子类,与CABasicAnimation的区别是: –CABasicAnimation只能 ... 
- core Animation之CAKeyframeAnimation(关键帧动画)
		CABasicAnimation的区别是:CABasicAnimation只能从一个数值(fromValue)变到另一个数值(toValue),而CAKeyframeAnimation会使用一个NSA ... 
- IOS第18天(6,CAKeyframeAnimation关键帧动画)
		******* #import "HMViewController.h" @interface HMViewController () @property (weak, nonat ... 
- [Xcode 实际操作]九、实用进阶-(20)创建位移关键帧动画:通过添加运动关键点制作位移动画
		目录:[Swift]Xcode实际操作 本文将演示如何通过添加运动关键点的方式,来制作位移动画 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIK ... 
- iOS开发UI篇—核心动画(关键帧动画)
		转自:http://www.cnblogs.com/wendingding/p/3801330.html iOS开发UI篇—核心动画(关键帧动画) 一.简单介绍 是CApropertyAnimatio ... 
随机推荐
- linux进阶1
			1.linux命令 1.1.find功能:在linux文件系统中,用来查找一个文件放在哪里了.举例:find /etc -name "interfaces"总结:(1)什么时候用f ... 
- linux 中文件权限和磁盘管理、linux服务器项目如何部署
			chmod chmod 421 xx.txt //4=r,2=w,1=x df 查看已挂载磁盘的总容量.使用容量.剩余容量等,可以不加任何参数,默认是按k为单位显示的 df常用参数有 –i -h -k ... 
- 【Alpha】十天屠龙记
			团队名字: 一不小心就火了 屠龙天团少年们: 031402504 陈逸超 (组长) 031402505 陈少铭 031402511 黄家俊 031402515 翁祖航 031402516 黄瑞钰 03 ... 
- smarty下如何将一个数保存为两位小数
			smarty模板是一种缓存技术,下面介绍一下smarty string_format用法 取小数点后2位: 用法如下: //index.php$smarty = new Smarty; $smarty ... 
- Xshell远程管理Linux
			Xshell[1]是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议. Xshell 通过互联网到远程主机的安全连接以及它创新 ... 
- HTML+CSS知识点总结
			转自:http://blog.csdn.net/qiushi_1990/article/details/40260447?utm_source=tuicool&utm_medium=refer ... 
- Thinking in java学习笔记之final
- bzoj 2648 KD-tree
			稍微看了一下KD-tree的讲义,大概明白了它的原理,但是实现不出来... 所以无耻的抄了一下黄学长的... #include<iostream> #include<cstdio&g ... 
- redis源码安装
			#安装目录 mkdir -p /data/apps/redis cd /data/tgz wget http://download.redis.io/releases/redis-3.2.1.tar. ... 
- Linux 查找文件并删除文件内容
			find * ./ |while read file; do echo ''>$file; done 
