//

//  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 动画的更多相关文章

  1. swift动画小试牛刀

    swift刚出没多长时间,看到各种惊呼党,翻译党,黑苹果党,视频教学党如雨后春笋版喷薄而出......我想说有点开发基础的人,其实看看文档也就行了,毕竟语言是拿来用的. 今天花了一下午的时间,没有太看 ...

  2. swift 动画合集

    本例参照objective-c的动画合集进行swift的转换,objective-c地址参照地址https://github.com/yixiangboy/IOSAnimationDemo 1.基础动 ...

  3. Swift动画编程指南-01 简介

    大家好,我是老镇,这段时间家里和工作上发生了很多的事情,所以很长一段时间都没有出来搞什么小动作了.在接下来的一段时间内我会制作一些列关于使用Swift进行动画编程的视频,希望和大家胃口. 在iOS的世 ...

  4. swift - 动画学习

    // //  ViewController.swift //  MapAnimation // //  Created by su on 15/12/10. //  Copyright © 2015年 ...

  5. Swift动画编程指南-02 Swift动画是怎么炼成的

    上一节我们看了几个很棒的例子,我们不禁会想.他们是怎么设计的,怎么从一个空白的画布变成一个完整的,美丽的动画.这些动画是如何产生的,是哪些属性被改变了.我们还要认真思考的是,每一个步骤到底发生了什么. ...

  6. Swift 动画学习笔记

    视频地址: http://www.swiftv.cn/course/i275v5lz 1,动画属性 position(位置),opacity(透明度,0 全透明,1 不透明),Scale(尺寸),Co ...

  7. Swift - 动画效果的实现方法总结(附样例)

    在iOS中,实现动画有两种方法.一个是统一的animateWithDuration,另一个是组合出现的beginAnimations和commitAnimations.这三个方法都是类方法. 一,使用 ...

  8. Swift 动画片段

    UIView.transitionWithView( self.WeatherDetailsView, duration: 0.7, options: .TransitionCrossDissolve ...

  9. iOS开发——动画篇Swift篇&动画效果的实现

    Swift - 动画效果的实现   在iOS中,实现动画有两种方法.一个是统一的animateWithDuration,另一个是组合出现的beginAnimations和commitAnimation ...

随机推荐

  1. HTTP请求中的form data,request payload,query string parameters以及在node服务器中如何接收这些参数

    http://www.cnblogs.com/hsp-blog/p/5919877.html 今天,在工作(倒腾微信小程序)的时候,发现发送post请求到node后台服务器接收不到前端传来的参数.其实 ...

  2. 阿里云OSS linux使用备忘录

    ossutil config example: accessKeyId = "AccessKeyId"; accessKeySecret = "AccessKeySecr ...

  3. 关于正则表达式 C#

    读懂正则表达式就这么简单   一 前言 对于正则表达式,相信很多人都知道,但是很多人的第一感觉就是难学,因为看第一眼时,觉得完全没有规律可寻,而且全是一堆各种各样的特殊符号,完全不知所云. 其实只是对 ...

  4. NPOI-Excel系列-1000.创建一个标准的Excel文件

    using NPOI.HSSF.UserModel; using Microsoft.VisualStudio.TestTools.UnitTesting; using System.IO; name ...

  5. POJ 2777-题解

    一.题意 给你一排N个格子,M种颜色,P个操作.有两种操作:(1)C A B D:把[A, B]区间内的所有格子涂成颜色D.(2)P A B:输出[A, B]区间内的颜色的种类数.注意,初始颜色为1. ...

  6. centos7开发环境配置总结

    1.win10下SecureCRT SSH连接慢 2.CentOS 7下Samba服务器的安装与配置 3.

  7. SQL中INNER JOIN的用法

    SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据. Join 和 Key 有时为了得到完整的结果,我们需要从两个或更多的表中获取结果.我们就需要执行 join. 数据库中的表 ...

  8. asp.net利用QQ邮箱发送邮件,关键在于开启pop并设置授权码为发送密码

    public static bool SendEmail(string mailTo, string mailSubject, string mailContent)        {         ...

  9. centos7.3 防火墙设置

    1.查看firewall服务状态 systemctl status firewalld 2.查看firewall的状态 firewall-cmd --state 3.开启.重启.关闭.firewall ...

  10. apache ant 修改java版本 方法之一

    通常apache ant是和eclipse软件绑定在一起的.尝试了一些方法不行,想到了一个笨的方法,分享一下: ①打开ant 编译时的配置界面 ②.切换到classPath选项卡,选择ant home ...