UIView Animation(一)-常用API使用(Swift)

本文及其之后的讲解是依据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 和普通的动画的运动曲线的对比:

UIView Animation(一)-常用API使用(Swift)_第1张图片

Spring Animation, Ease-Out Animation 和 Linear Animation 的动画效果
UIView Animation(一)-常用API使用(Swift)_第2张图片

  • 转场动画
  • 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.
在两个给定视图之间构建过渡动画(翻译纯属个人见解,有错请指出)


以上为UIView Animation的基础动画API,使用其实很简单,就是要理解不同参数的意义。在接下来的时间,本人每周会出一篇有关于动画的文章,更加深入的了解iOS Animation。希望与看到文章的你共同进步!需要Demo请留言!

你可能感兴趣的:(UIView Animation(一)-常用API使用(Swift))