减慢UIDynamicAnimator的动画速度

时间:2014-09-28 16:48:49

标签: ios animation uidynamicbehavior uidynamicanimator

我想减慢由我的UIDynamicAnimator生成的动画,以便我可以微调我的UIDynamicBehaviors。

在ios模拟器中,Debug菜单下有一个菜单选项,标有"在最前面的app"中切换慢动画。

但是,此选项似乎对UIDynamicAnimator生成的动画没有影响。还有其他方法可以实现我的目标吗?

1 个答案:

答案 0 :(得分:1)

您可以更改动画中指定的力,以减慢移动速度。例如,您可以更改重力幅度以减慢加速度:

    self.animator = UIDynamicAnimator(referenceView: self.view)
    var gravity = UIGravityBehavior(items: [animatedView])
    gravity.magnitude = 0.5

如果你发生碰撞,你可能还会增加摩擦力和/或弹性以减慢速度,但在某些情况下这会影响轨迹:

    let bounceProperties = UIDynamicItemBehavior(items: [animatedView])
    bounceProperties.elasticity = 0.5
    bounceProperties.friction = 0.2

    var collision = UICollisionBehavior(items: [animatedView])
    var boundaryId: NSMutableString = NSMutableString(string: "bottomBoundary")
    let boundaryPath = UIBezierPath(rect: boundaryFrame)
    collision.addBoundaryWithIdentifier(boundaryId, forPath: boundaryPath)

    // Start animating
    animator.addBehavior(gravity)
    animator.addBehavior(collision)
    animator.addBehavior(bounceProperties)
相关问题