     
     override func beginTrackingWithTouch(touch: UITouch, withEvent event: UIEvent?) -> Bool {
         if trackTouchLocation {
-            rippleView.center = touch.locationInView(self)
+            touchCenterLocation = touch.locationInView(self)
+        } else {
+            touchCenterLocation = nil
         }
         
         UIView.animateWithDuration(0.1,

    override func layoutSubviews() {
        super.layoutSubviews()
        
        let oldCenter = rippleView.center
        setupRippleView()
        rippleView.center = oldCenter
        
        rippleBackgroundView.layer.frame = bounds
        rippleBackgroundView.layer.mask = rippleMask

    
    private var tempShadowRadius: CGFloat = 0
    private var tempShadowOpacity: Float = 0
    private var touchCenterLocation: CGPoint?
    
    private var rippleMask: CAShapeLayer? {
        get {
