Recommended Approach for Handling Multiple UIButton Events: Single Handler vs Multiple Selectors?

I’m working with UIButton and finding different examples for event handling. Currently, I have a single action method like this, which receives the sender and the UIEvent:

@objc func buttonHandler(_ sender: UIButton, forEvent event: UIEvent) {
    if let touches = event.allTouches, let touch = touches.first {
        switch touch.phase {
        case .began:  print("TouchDown")
        case .ended:
            if sender.bounds.contains(touch.location(in: sender)) {
                print("TouchUpInside")
            } else {
                print("TouchUpOutside")
            }
        case .cancelled: print("TouchCancel")
        default: break
        }
    }
    if event.type == .presses {
        print("PrimaryActionTriggered")
    }
}

Is this considered best/recommended practice in UIKit, or should I use separate selector methods for each event type (e.g. .touchDown, .touchUpInside, .touchUpOutside) using addTarget(_:action:for:)?

Are there any advantages or disadvantages to using a single handler with UIEvent versus multiple selectors for UIControlEvents?

Thanks in advance!

Recommended Approach for Handling Multiple UIButton Events: Single Handler vs Multiple Selectors?
 
 
Q