     if animator == snapAnimUIDynamicAnimator {
       println("Snapped")
       animator.removeAllBehaviors()
-      centerTick = nil
       isSnapping = false
-      self.expanded = false
+      if canceledSnapping {
+        canceledSnapping = false
+      } else {
+        closeLater()
+      }
     }
   }
   // MARK - Methods to be our own data source

  /// Will be set to true if the control is animating the snapping
  var isSnapping: Bool = false
  
  /// Seconds from the time user lifts touch until the control auto-closes
  var secondsToClose: CGFloat? = 0.5
  
  /// Flag to allow the control to keep tracking even if user goes outside the frame
  var allowTrackOutsideControl: Bool = true

  override func beginTrackingWithTouch(touch: UITouch, withEvent event: UIEvent) -> Bool {
    if isSnapping {
      println("Canceled snapping")
      canceledSnapping = true
      snapAnimUIDynamicAnimator.removeAllBehaviors()
      if closureToCloseControl != nil {
        cancel_delay(closureToCloseControl)
      }
      isSnapping = false
    }
    expanded = true
