Swift 动画学习笔记

时间:2021-11-20 12:37:15

视频地址: http://www.swiftv.cn/course/i275v5lz

1,动画属性

position(位置),opacity(透明度,0 全透明,1 不透明),Scale(尺寸),Color,Rotate,3D

2,动画曲线

Linear(线性),EaseIn(慢开始),EaseOut(慢结束),EaseInEaseOut

3,CoreAnimation

1)创建球

let redBall = UIView(frame:CGRectMale(50,50,100,100))

redBall.backgroundColor = UIColor.redColor()

redBall.layer.cornerRadius = 50 //半圆

self.view.addSubView(redBall)

2)放大动画

UIView.animateWithDuration(0.5,delay:0,options:UIViewAnimationOptions.CurveEaseInOut,

animations:{()->void in

redBall.transform = CGAffineTransformMakeScale(2,2)  //圆放大

},completion:nil)

3)组合动画和位移动画

UIView.animateWithDuration(0.5,delay:0,options:UIViewAnimationOptions.CurveEaseInOut,

animations:{()->void in

//redBall.transform = CGAffineTransformMakeScale(2,2)

redBall.transform = CGAffineTransformConcat(

CGAffineTransformMakeScale(2.0,2.0),

CGAffineTransformMakeTranslation(150,50));

redBall.backgroundColor = UIColor.greenColor()

},completion:nil)

4)弹性动画(加两个参数) spring Animation

UIView.animateWithDuration(

3,

delay:0,

  usingSpringWithDamping:0.3,    //阻力值

  initialSpringVelocity:0,  //弹性运动初始速度

  options:UIViewAnimationOptions.allZeros,

  animations:{()->void in

    redBall.transform = CGAffineTransformMakeTranslation(200,0)

  },

  completion:nil)

4, JNWSpringAnimation

1) CAKeyframeAnimation  关键帧动画

多个关键帧组成动画

可以设置时间间隔

设置位移,缩放等动画属性

2)JNW支持的属性

.position,rotation,scale,corner,shadow,bounds等

3)导入JNW框架

a)获取JNW框架

https://github.com/jwilling/JNWSpringAnimation

 b) 拖入项目中,修改版本差异

new group- 文件拖入-创建桥接头文件-加入#import"JNWSpringAnimation.h"

在NSValue+。。。中引入#import<UIKit/UIKit.h>

c)缩放动画

//创建JNW实例

let scale  = JNWSpringAnimation(keyPath:"transform.scale")

//阻力

scale.damping = 6

***********************

IOS动画类型

IOS 上的动画实现有三种方式:

1,UIView动画

2,CATransition动画 。主要用于两个视图切换过渡的动画效果

3,CAAnimation动画.IOS核心动画,结合绘图可以实现灵活多变的动画效果