         if animated {
             UIView.animateWithDuration(0.2, delay: 0, options: .BeginFromCurrentState | .CurveEaseInOut, animations: {
                 self.revealed = revealed
-            }, completion: nil)
+            }, completion: { completed in
+                UIView.animateWithDuration(0.2) {
+                    self.scrollView.contentOffset.y = -self.scrollView.contentInset.top
+                }
+            })
         } else {
             self.revealed = revealed
         }


        appliedInsets = insets
        scrollView.contentInset = targetInset
        scrollView.contentOffset.y = -scrollView.contentInset.top
    }
    
    private func addInsets() {

            if triggeringValue < value {
                setRevealed(!revealed, animated: true)
            } else if 0 < bounds.height && bounds.height < contentHeight  {
                UIView.animateWithDuration(0.3) {
                    self.scrollView.contentOffset.y = -self.scrollView.contentInset.top
                }
            }
