iOS 带有震荡效果的动画

原创Blog,转载请注明出处
http://blog.csdn.net/hello_hwc?viewmode=list
我的stackoverflow
profile for Leo on Stack Exchange, a network of free, community-driven Q&A sites

前言:算是对之前CoreAnimation系列的补充吧,iOS中,实现震荡这样的物理效果还是比较简单的,复杂的物理动画可以通过UIDynamic动画(之前的这篇文章讲解过)

效果-注意结束的时候可以看到View震动了一下,别小看这一点点的效果,用户体验就是在每一个一点点中拉开差距的
iOS 带有震荡效果的动画_第1张图片
代码

   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

        }

iOS 带有震荡效果的动画_第2张图片
代码

     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

你可能感兴趣的:(ios,动画,震荡)