Objective-c 
// Add guesture recognizer
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(buttonDidLongPress:)];
    [self.button addGestureRecognizer:longPress];
// Call back event
- (void)buttonDidLongPress:(UILongPressGestureRecognizer*)gesture
{
    switch (gesture.state) {
        case UIGestureRecognizerStateBegan:
        {
            // Code
        }
            break;
        case UIGestureRecognizerStateEnded:
        {
            //Code
        }
            break;
        default:
            break;
    }
}
Swift
// Add guesture recognizer
        let longPress = UILongPressGestureRecognizer(target: self, action: #selector(longPress(_:)))
        self.button.addGestureRecognizer(longPress)
// Call back event
func longPress(guesture: UILongPressGestureRecognizer) {
        switch guesture.state {
        case UIGestureRecognizerState.began:
            //Code
            break
        case UIGestureRecognizerState.ended:
            //Code
            break
        default:
            break
        }
    }
Don't forgot to extend you class with UIGestureRecognizerDelegate