         self.view.layoutIfNeeded()
         headerTopConstraint.constant = 0
         view.setNeedsUpdateConstraints()
-        UIView.animateWithDuration(duration / 2, animations: {
+        UIView.animateWithDuration(duration / 2, delay: 0, usingSpringWithDamping: 0.85, initialSpringVelocity: 0.5,  options: [.CurveEaseInOut, .TransitionNone], animations: {
             // Layout header
             self.view.layoutIfNeeded()
         }, completion: {

            self.headerTopConstraint.constant = -self.headerHeightConstraint.constant
            self.view.setNeedsUpdateConstraints()

            UIView.animateWithDuration(duration / 2, animations: {
                // Layout header
                self.view.layoutIfNeeded()
            }, completion: completion)

            self.containerTopConstraint.constant = self.headerHeightConstraint.constant
            self.view.setNeedsUpdateConstraints()

            UIView.animateWithDuration(duration / 2, delay: 0, usingSpringWithDamping: 0.85, initialSpringVelocity: 0.5,  options: [.CurveEaseInOut, .TransitionNone], animations: {
                // Layout content
                self.view.layoutIfNeeded()
            }, completion: completion)
