Gesture Collision with SwiftUI + UIKit
This project demonstrates a bug – or at least unexpected behavior – that occurs when combining UIKit with SwiftUI.
Given the following view structure:
— UIWindow
— UIHostingController
— A SwiftUI View as UIHostingController.view
— A SwiftUI Button
— A UIView with a gesture recogznier, added as a subview to UIHostingController.view
If the SwiftUI Button and the UIView are overlaid, a tap on the UIView will be recognized, but also pass through to the SwiftUI Button, triggering a tap on it as well.
Expected behavior is that the UIView, being on top, would absorb the touch and the SwiftUI Button would have no knowledge of the interaction.
Try enabling usesTouchAbsorbingView
in ContentView
to see a workaround in use.