title: Animating with UIDynamicAnimator when Autolayout is in play
body: <p>I have a ViewController that has been configured in InterfaceBuilder to use AutoLayout for all of its subviews. Layout is working fine.</p>
  
  <p>I want to make one of the subviews bounce using the cool gravity effects provided by UIDynamicAnimator. I didn't think that would work with AutoLayout, but I tried it and it does. It works quite well!</p>
  
  <p><strong>My question is</strong>, is this the expected behavior? Is it going to cause problems somewhere? Does Apple provide any guidance around combining AutoLayout and UIDynamicAnimators?</p>
  
  <p>Here is the code, for anyone interested:</p>
  
  <pre><code>    var boundaryFrame = self.buttonBackgroundView.frame
      boundaryFrame = CGRect(x: 0,
          y: boundaryFrame.origin.y + (boundaryFrame.height + 1),
          width: self.view.frame.width,
          height: 2)
  
      self.animator = UIDynamicAnimator(referenceView: self.view)
      var gravity = UIGravityBehavior(items: [self.buttonBackgroundView])
      gravity.magnitude = 0.5
  
      var collision = UICollisionBehavior(items: [self.buttonBackgroundView])
      var boundaryId: NSMutableString = NSMutableString(string: "bottomBoundary")
      let boundaryPath = UIBezierPath(rect: boundaryFrame)
      collision.addBoundaryWithIdentifier(boundaryId, forPath: boundaryPath)
  
      let bounceProperties = UIDynamicItemBehavior(items: [self.buttonBackgroundView])
      bounceProperties.elasticity = 0.5
  
      // Move it up before causing it to bounce down to its original location
      self.setMeUpTopConstraint.constant = 10
      self.view.setNeedsUpdateConstraints()
      self.view.layoutIfNeeded()
  
      // Start animating
      animator.addBehavior(gravity)
      animator.addBehavior(collision)
      animator.addBehavior(bounceProperties)
  </code></pre>