         }
     }
     
+    public override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
+        super.touchesBegan(touches, withEvent: event)
+        
+        if tapHandler != nil {
+            tapHandler?()
+            tapHandler = nil
+        }
+    }
+    
     public func clearTapHandler() {
         userInteractionEnabled = false
         subtitleLabel?.removeFromSuperview()

    //
    public class func setTitleFont(font: UIFont?) {
        let spinner = SwiftSpinner.sharedInstance

        if let font = font {
            spinner.titleLabel.font = font
        } else {

        innerCircle.strokeEnd = 1.0
        
        vibrancyView.contentView.addSubview(innerCircleView)
        
        userInteractionEnabled = true
    }
    
    public override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView? {
        return self
    }
    
    // MARK: - Public interface
    
    public lazy var titleLabel = UILabel()
    public var subtitleLabel: UILabel?
    
    //
    // Show the spinner activity on screen, if visible only update the title
    //
