swift4 UIView.animate() 参数详解

浏览: 203 发布日期: 2017-12-21 分类: swift

概述

UIView.animate 参数说明:

1. withDuration: TimeInterval  动画执行时间
2. delay:TimeInterval          动画延迟执行时间
3. usingSpringWithDamping: CGFloat  弹簧阻力,取值范围为0.0-1.0,数值越小“弹簧”振动效果越明显。   
4. initialSpringVelocity: CGFloat   动画初始的速度(pt/s),数值越大初始速度越快。但要注意的是,初始速度取值较高而时间较短时,也会出现反弹情况。 
5. options: UIViewAnimationOptions     运动动画速度曲线  
6. animations: () -> Void           执行动画的函数,也是本动画的核心
7. completion: ((Bool) -> Void)?    动画完成时执行的回调,可选性,可以为 nil

初始化

分别有以下初始化方式:

  • 最简单的初始化方式:
UIView.animate(withDuration: TimeInterval, animations: () -> Void)

此方法定义了动画执行时间和执行的函数

  • 执行动画和执行完动画执行的函数
UIView.animate(withDuration: TimeInterval, animations: () -> Void, completion: ((Bool) -> Void)?)
  • 复杂动画
UIView.animate(withDuration: TimeInterval, delay: TimeInterval, usingSpringWithDamping: CGFloat, initialSpringVelocity: CGFloat, options: UIViewAnimationOptions, animations: () -> Void, completion: () -> Void?)

参数详解

参数 1 跟 2 比较简单分别代表 动画执行时间 和 动画延迟执行时间
参数3 usingSpringWithDamping 官网上解释是动画接近静止状态时的阻尼比,取值范围是0~1,阻尼比越大,动画越平稳,反之震荡越严重,效果如图

参数4 initialSpringVelocity 初始速度,值越大,越快,官网上举了个例子:如果总动画距离为200点,并且您希望动画的开头匹配100pt / s的视图速度,则使用值0.5。反正我也不太明白,不过根据我自己理解,如果动画执行时间一样,如果初始速度越大,会动画的幅度会更大,也就是走更越的距离,效果如图:

参数5 options 我自己理解是动画执行的速度曲线, 对于速度曲线其实都是贝塞尔函数,这里有一个缓动函数速查表可以查看常用的速度曲线

参数6 animations 就是要执行的函数了,可以改变 UIView 的 大小,颜色,位置,缩放,旋转等说起来又是一大堆,这里就不详细说这个了

参数7 completion 执行完动画的回调,可以是nil

结尾及源码

关于 UIView.animate 的参数大概就说这么多了,喜欢请收藏,想要源码的话请移步这里

返回顶部