I am currently developing an iOS app using swift. I used override to write my own tocuhesBegan and tochesEnded functions. Now when I use self.button.

```
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
    super.touchesBegan(touches, withEvent: event)
    for touch in touches {
        var tap = touch as? UITouch
        var touchPoint: CGPoint = tap!.locationInView(self)
        self.touchDown(touchPoint)
    }
}

override func touchesEnded(touches: Set<NSObject>, withEvent event: UIEvent) {
    super.touchesEnded(touches, withEvent: event)
    self.releaseTouch()
}

override func touchesCancelled(touches: Set<NSObject>!, withEvent event: UIEvent!) {
    super.touchesCancelled(touches, withEvent: event)
}

override func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent) {
    super.touchesMoved(touches, withEvent: event)
}

func touchDown(point: CGPoint){
    if rippleEffect == true {
        touchView.frame = touchViewInitFrame
        self.addSubview(touchView)
        var touchViewFrameXPosition: CGFloat = point.x - (frame.size.width) / 2
        println("X position = \(touchViewFrameXPosition)")
        var touchViewFrameYPosition: CGFloat = -(self.frame.size.width - self.frame.size.height) / 2
        touchViewFrame = CGRectMake(touchViewFrameXPosition, touchViewFrameYPosition, frame.size.width, frame.size.width)
        UIView.animateWithDuration(0.25, delay: 0.0, options: .CurveEaseInOut, animations: {
            self.touchView.frame = self.touchViewFrame
            }, completion: nil)
    }

}

func releaseTouch(){
    if rippleEffect == true {
        UIView.animateWithDuration(0.0, delay: 0.0, options: .CurveEaseInOut, animations: {
            self.touchView.removeFromSuperview()
            }, completion: nil)
    }
}

```

it doesn't go to the function I specified in the selector. Is anyone else having this issue or does anyone know what's going on?

Here is the code that I used where I am having the issue. It is a subclass of UIButton.