swift 动画
//
// ViewController.swift
// Anamation
//
// Created by su on 15/12/9.
// Copyright © 2015年 tian. All rights reserved.
//
//动画
//动画的主要属性
//Position xy坐标属性
//Opacity 透明度属性
//Scale 缩放属性
//其他属性 Color颜色属性 Rotate 旋转属性 3D属性
//动画师如何形成的? 1.动画开始时对象的属性2.动画结束时对象的属性3.动画执行的时间4.执行动画过程中会发生什么,5.动画结束后会发生什么
//动画曲线
//1.Linear 现行匀速变化
//2.Ease In 以慢速开始:加速变化
//3.Ease In, Ease Out 先加速后减速
//4.Ease Out 以慢速开始:减速变化
import UIKit
import CoreGraphics
import QuartzCore
class ViewController: UIViewController {
@IBOutlet weak var redBall1: UIView!
@IBOutlet weak var redBall2: UIView!
@IBOutlet weak var redBall3: UIView!
@IBOutlet weak var redBall4: UIView!
@IBOutlet weak var redBall5: UIView!
@IBOutlet weak var redBall6: UIView!
override func viewDidLoad() {
super.viewDidLoad()
//UIKit和Core Animation动画 原生 优点:简单.代码量少
//球的放大动画 灰色
UIView.animateWithDuration(0.5, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut, animations: { () -> Void in
self.redBall4.transform = CGAffineTransformMakeScale(2, 2)
}, completion: nil)
//组合动画和位移动画
//组合动画-CGAffineTransformConcat
UIView.animateWithDuration(1, delay: 0, options: UIViewAnimationOptions.CurveEaseOut, animations: { () -> Void in
self.redBall1.transform = CGAffineTransformConcat(CGAffineTransformMakeScale(2, 2), CGAffineTransformMakeTranslation(100, 400))
self.redBall1.backgroundColor = UIColor.greenColor()
}, completion: nil)
// Spring Animation 弹性动画 usingSpringWithDamping阻尼值 蓝色
UIView.animateWithDuration(1, delay: 0, usingSpringWithDamping: 0.3, initialSpringVelocity: 0, options: UIViewAnimationOptions.CurveEaseOut, animations: { () -> Void in
self.redBall2.transform = CGAffineTransformConcat(CGAffineTransformMakeScale(2, 2), CGAffineTransformMakeTranslation(100, 200))
self.redBall2.backgroundColor = UIColor.blueColor()
}, completion: nil)
//JNWSpringAnimation 老外写的 优点:这个框架能够很细致的调整弹性动画属性
// JNW所支持的属性: bounds边界,position位置,rotation旋转,sacale缩放,corner圆角,shadow阴影
// 1.导入JNW框架
//获取JNW框架 https://github.com/jwilling/JNWSpringAnimation
//因为JNW框架是使用Object-C编写 所以需要创建桥接头文件, 在头文件中引入#import "JNWSpringAnimation.h" ---swift与object-c混编
//缩放动画 橘色
//创建JNW实例
let scale = JNWSpringAnimation(keyPath: "transform.scale")
//阻尼
scale.damping = 1
//伸展系数,弹簧伸缩的难度
scale.stiffness = 100
//质量 : 决定动画快慢的效果
scale.mass = 2
//设置初始值 和结束值
scale.fromValue = 1
scale.toValue = 2
//将JNW赋予redball
redBall3.layer.addAnimation(scale, forKey: scale.keyPath)
redBall3.transform = CGAffineTransformMakeScale(2, 2)
//旋转动画 红色
//创建JNW实例
let rotation = JNWSpringAnimation(keyPath: "transform.rotation")
//阻尼
rotation.damping = 1
rotation.stiffness = 100
rotation.mass = 2
rotation.fromValue = 0
rotation.toValue = M_PI_2
redBall5.layer.addAnimation(rotation, forKey: rotation.keyPath)
redBall5.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_2))
//位移变化 粉色
let movie = JNWSpringAnimation(keyPath: "tranform.translation.y")
movie.damping = 6
movie.stiffness = 100
movie.mass = 2
movie.fromValue = 0
movie.toValue = 300
redBall6.layer.addAnimation(movie, forKey: movie.keyPath)
//JNWSpringAnimation 默认会还原初始状态,所以要动手设置的到结束状态
redBall6.transform = CGAffineTransformMakeTranslation(0, 300)
//Facebook Pop facebook开源动画引擎pop
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
swift 动画的更多相关文章
- swift动画小试牛刀
swift刚出没多长时间,看到各种惊呼党,翻译党,黑苹果党,视频教学党如雨后春笋版喷薄而出......我想说有点开发基础的人,其实看看文档也就行了,毕竟语言是拿来用的. 今天花了一下午的时间,没有太看 ...
- swift 动画合集
本例参照objective-c的动画合集进行swift的转换,objective-c地址参照地址https://github.com/yixiangboy/IOSAnimationDemo 1.基础动 ...
- Swift动画编程指南-01 简介
大家好,我是老镇,这段时间家里和工作上发生了很多的事情,所以很长一段时间都没有出来搞什么小动作了.在接下来的一段时间内我会制作一些列关于使用Swift进行动画编程的视频,希望和大家胃口. 在iOS的世 ...
- swift - 动画学习
// // ViewController.swift // MapAnimation // // Created by su on 15/12/10. // Copyright © 2015年 ...
- Swift动画编程指南-02 Swift动画是怎么炼成的
上一节我们看了几个很棒的例子,我们不禁会想.他们是怎么设计的,怎么从一个空白的画布变成一个完整的,美丽的动画.这些动画是如何产生的,是哪些属性被改变了.我们还要认真思考的是,每一个步骤到底发生了什么. ...
- Swift 动画学习笔记
视频地址: http://www.swiftv.cn/course/i275v5lz 1,动画属性 position(位置),opacity(透明度,0 全透明,1 不透明),Scale(尺寸),Co ...
- Swift - 动画效果的实现方法总结(附样例)
在iOS中,实现动画有两种方法.一个是统一的animateWithDuration,另一个是组合出现的beginAnimations和commitAnimations.这三个方法都是类方法. 一,使用 ...
- Swift 动画片段
UIView.transitionWithView( self.WeatherDetailsView, duration: 0.7, options: .TransitionCrossDissolve ...
- iOS开发——动画篇Swift篇&动画效果的实现
Swift - 动画效果的实现 在iOS中,实现动画有两种方法.一个是统一的animateWithDuration,另一个是组合出现的beginAnimations和commitAnimation ...
随机推荐
- php switch case的"bug"
首先说明,这不是一个bug.应该说是一个比较容易中招的陷阱. 今天使用switch遇到一个问题,代码如下: <?php $num = 0; switch ($price) { case $pri ...
- 【monkeyrunner】monkeyrunner 的的方法介绍
1.用法:MonkeyRunner.alert(message,title,okTitle) 执行当前脚本弹出一个警示对话框,用户关闭对话框后脚本才结束. message:会话弹出的内容title:会 ...
- java编码-多重(正常)
String ISO = "ISO-8859-1"; String UTF = "UTF-8"; String GBK = "GBK"; S ...
- linux CentOS 安装rz和sz命令 lrzsz 实现windows和linux之间的文件上传 下载
https://blog.nbhao.org/1902.html https://bbs.csdn.net/topics/391989523 https://www.cnblogs.com/zhoul ...
- Java 简单UDP通信
Java手册 java.net Class DatagramSocket java.lang.Object java.net.DatagramSocket All Implemented Interf ...
- python + docker, 实现天气数据 从FTP获取以及持久化(四)-- 数据准备
前情提要 在之前的文章里,我们已经掌握从FTP上面下载天气数据然后插入到数据库中. 但是如何将我们已有的数据放到生产环境中呢? 思考 首先,我们先简单的理一理现在的情况. 目前: FTP上面已有半个月 ...
- 基础html和css知识
No1.HTML 1.网页结构 网页结构一般都包含文档声明DOCTYPE,并且在head中的meta应该包含编码格式.关键字.网页描述信息.简单格式如下: <!DOCTYPE html> ...
- 简单的自动化测试模型(python+selenium)
刚接触自动化测试,由于没有编程语言的基础,是搞不懂代码里面的函数.封装.包以及其他概念,只是了解字符串.数组.元组及字典这种最基本的名词,更不懂自动化测试框架了. ...
- css字体中英文对照表(转)
在css文件中,我们常看到有些字体名称变成了乱码,这是由于网页开发者将中文字体的名字直接写成了中文,而css文件本身没有声明字符编码方式,查看时就出现了乱码.为了避免这种乱码状况出现,可以将css文 ...
- gen_projective_mosaic(Halcon例子)
* This example program shows how several images of a PCB can be combined * into a large mosaic image ...