本文及其之后的讲解是依据Raywenderich 的 Animation Tutorial这一本书和苹果官方文档总结而来,特此声明!
- 参数解释
*如解释有误,请指出,谢谢*
1 duration: 动画执行时间
2 delay:动画延迟执行时间
3 options:
基本参数:
.LayoutSubviews:在AutoLayout下,如果修改AutoLayout,那么子视图也会跟着一起变化
.AllowUserInteraction:在动画时,允许用户交互
.BeginFromCurrentState:允许在动画执行时执行新的动画
.Repeat:永远重复的运行
.Autoreverse:动画执行结束后按照相反的行为继续执行,该属性只能和.Repeat属性组合使用
.OverrideInheritedDuration:强制动画使用内层动画的时间值
.OverrideInheritedCurve:强制动画使用内层动画曲线值
线性参数:
.CurveLinear:动画做线性运动
.CurveEaseIn:动画缓慢开始,然后逐渐加速
.CurveEaseOut:动画迅速开始,在结束时减速
.CurveEaseInOut:动画慢慢开始,然后加速,在结束之前减速
转场参数:
.TransitionNone:没有转场动画
.TransitionFlipFromTop :从顶部围绕水平轴做翻转动画
.TransitionFlipFromBottom:从底部围绕水平轴做翻转动画
.TransitionFlipFromLeft :从左侧围绕垂直轴做翻转动画
.TransitionFlipFromRight:从右侧围绕垂直轴做翻转动画
.TransitionCurlUp:从下往上做翻页动画
.TransitionCurlDown :从上往下做翻页动画
.TransitionCrossDissolve:视图溶解消失显示新视图动画
4 usingSpringWithDamping:弹簧阻力,取值范围为0.0-1.0,数值越小“弹簧”振动效果越明显。
5 initialSpringVelocity:动画初始的速度(pt/s),数值越大初始速度越快。但要注意的是,初始速度取值较高而时间较短时,也会出现反弹情况。
- 普通动画
- animateWithDuration:delay:options:animations:completion:
class func animateWithDuration(_ duration: NSTimeInterval,
delay delay: NSTimeInterval,
options options: UIViewAnimationOptions,
animations animations: () -> Void,
completion completion: ((Bool) -> Void)?)
Animate changes to one or more views using the specified duration, delay, options, and completion handler.
对一个或者多个视图按照相应参数做固定动画(翻译纯属个人见解,有错请指出)
- animateWithDuration:delay:usingSpringWithDamping:initialSpringVelocity:options:animations:completion:
class func animateWithDuration(_ duration: NSTimeInterval,
delay delay: NSTimeInterval,
usingSpringWithDamping dampingRatio: CGFloat,
initialSpringVelocity velocity: CGFloat,
options options: UIViewAnimationOptions,
animations animations: () -> Void,
completion completion: ((Bool) -> Void)?)
Performs a view animation using a timing curve corresponding to the motion of a physical spring.
对一个视图按照相应参数做弹性动画(类似于弹簧,翻译纯属个人见解,有错请指出)
图片借鉴Renfei Song's Blog,只为更清楚的展示调用两个API的不同效果
Spring Animation 和普通的动画的运动曲线的对比:
Spring Animation, Ease-Out Animation 和 Linear Animation 的动画效果:
- 转场动画
- transitionWithView:duration:options:animations:completion:
class func transitionWithView(_ view: UIView,
duration duration: NSTimeInterval,
options options: UIViewAnimationOptions,
animations animations: (() -> Void)?,
completion completion: ((Bool) -> Void)?)
Creates a transition animation for the specified container view.
为指定的视图构建一个过渡动画(翻译纯属个人见解,有错请指出)
- transitionFromView:toView:duration:options:completion:
class func transitionFromView(_ fromView: UIView,
toView toView: UIView,
duration duration: NSTimeInterval,
options options: UIViewAnimationOptions,
completion completion: ((Bool) -> Void)?)
Creates a transition animation between the specified views using the given parameters.
在两个给定视图之间构建过渡动画(翻译纯属个人见解,有错请指出)