原创Blog,转载请注明出处
http://blog.csdn.net/hello_hwc?viewmode=list
我的stackoverflow
前言:算是对之前CoreAnimation系列的补充吧,iOS中,实现震荡这样的物理效果还是比较简单的,复杂的物理动画可以通过UIDynamic动画(之前的这篇文章讲解过)
效果-注意结束的时候可以看到View震动了一下,别小看这一点点的效果,用户体验就是在每一个一点点中拉开差距的
代码
UIView.animateWithDuration(0.4, delay: 0.0,
usingSpringWithDamping:0.6,
initialSpringVelocity: 1.0,
options:UIViewAnimationOptions.CurveEaseInOut,
animations: { () -> Void in
self.testview.center = self.view.center
}) { (finished) -> Void in
}
代码
UIView.animateWithDuration(0.4, delay: 0.0,
usingSpringWithDamping:0.6,
initialSpringVelocity: 1.0,
options:UIViewAnimationOptions.CurveEaseInOut,
animations: { () -> Void in
self.testview.transform = CGAffineTransformMakeScale(2.0, 2.0)
}) { (finished) -> Void in
}
实现函数
class func animateWithDuration(_ duration: NSTimeInterval,
delay delay: NSTimeInterval,
usingSpringWithDamping dampingRatio: CGFloat,
initialSpringVelocity velocity: CGFloat,
options options: UIViewAnimationOptions,
animations animations: () -> Void,
completion completion: ((Bool) -> Void)?)
参数详解
- duration 动画从开始到结束的时间间隔
- delay 延迟的时间
- dampingRatio 在接近最终状态的时候震荡的幅度,0到1,1震荡最小。
- velocity 最初条约的速度,例如,如果动画的距离是200,这个值是0.5,那么速度就是100pt/s
- animations 实际要执行的动画
- completion 动画结束时候执行的block