 	method, because the 'showInView' methods need to be custom for each class
  */
 public protocol Spinner {
-
+    
     /**
      Dismiss the Spinner. Implementations should remove any views from their superview.
-     */
-    func dismiss()
+     
+     - Parameter enablesUserInteraction: A boolean that specifies if the user interaction on the view should be enabled when the spinner is dismissed
+     */
+    func dismiss(enablesUserInteraction enablesUserInteraction: Bool)
+}
+
+public extension Spinner {
+    func dismiss(enablesUserInteraction enablesUserInteraction: Bool = false){}
 }
 
 public class SpinnerView: NSObject, Spinner {

    private func removeAllTitleColors() {
        restoreTitleColors(allTitleColors().map({ return ($0.0, UIColor.clearColor()) }))
    }
}

extension UIActivityIndicatorView: Spinner {

    // Called when the activity indicator should be removed.
    public func dismiss(enablesUserInteraction enablesUserInteraction: Bool = false) {
        stopAnimating()
        removeFromSuperview()
    }
