Skip to content
CoderYoung edited this page Jan 13, 2016 · 1 revision

###最近看了 Raywenderlich 的 《iOS Animations by Tutorials》,来做个读书笔记,感兴趣请支持正版。

Chapter 2: Springs

上个章节你学习了如何通过UIKit创建基本的动画,这些基本动画都是直线移动的。这一章节你将要学习如何创建复杂的动画Spring,又称为阻尼震动

Spring animations

UIView.animateWithDuration(0.5, delay: 0.5, usingSpringWithDamping: 0.5, usingSpringWithDamping: 0.0, options: [], animations: {
   self.loginButton.center.y -= 30.0
   self.loginButton.alpha = 1.0 
}, 
completion: nil)

上面的方法和之前的 **animateWithDuration(_:animations:)**参数类似,多了一对参数

  • usingSpringWithDamping:弹簧动画的阻尼值,也就是相当于摩擦力的大小,该属性的值从0.0到1.0之间,越靠近0,阻尼越小,弹动的幅度越大,反之阻尼越大,弹动的幅度越小,如果大到一定程度,会出现弹不动的情况。

  • initialSpringVelocity:弹簧动画的速率,或者说是动力。值越小弹簧的动力越小,弹簧拉伸的幅度越小,反之动力越大,弹簧拉伸的幅度越大。这里需要注意的是,如果设置为0,表示忽略该属性,由动画持续时间和阻尼计算动画的效果。

Sping动画在View运动时会影响View的所有需要改变的属性,即使是alpha值,意思是View来回震荡时,alpha值也来回变化

你可以来回修改usingSpringWithDamping和usingSpringWithDamping的值来观察动画的区别。

相关文章

iOS UIView Animation - Spring

Clone this wiki locally