概述
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 的参数大概就说这么多了,喜欢请收藏,想要源码的话请移步这里