Why do I get touchesCanceled all the time?

Just curious why I get touchesCanceled even after I process:

@objc func tappedView(_ sender:UITapGestureRecognizer)

It's requiring a lot of extra coding to determine a real cancel vs I just got a tap.

Could you show more code: how you create the tapGesture, how you detect cancel. Why don't you connect directly the tapGesture to an IBAction from IB ? Is it called from SwiftUI code ?

It is surprising to have Cancel for a TapGesture. Doc shows that for such discrete gesture, there is not such a state (just failed, but that may come from a cancel):      

https://developer.apple.com/documentation/uikit/touches_presses_and_gestures/implementing_a_custom_gesture_recognizer/about_the_gesture_recognizer_state_machine

Why do I get touchesCanceled all the time?
 
 
Q