DragGesture latency on iOS 27

As of iOS 27, DragGesture(minimumDistance: 0) no longer functions as a reliable touch detector, at least without a noticeable delay before the gesture is recognized. This is very frustrating, as this was one of the few decent ways to detect touch down (and up) events in more complicated gesture handling scenarios.

Some level of delay for gesture disambiguation is of course expected in certain cases, but this is reproducible even when the drag gesture is the sole gesture in the view hierarchy. Further, this was never a problem on iOS 26 and below.

To see the issue, run an app containing the following view and tap the green rectangle rapidly. On iOS 27, the opacity won't change at all, while on iOS 26 and below it will flash rapidly as expected.

To make matters much worse, the latency goes from slight but noticeable to ridiculous if the view is placed anywhere in the bottom 1/5 or so of the screen. System gestures seem to be interfering. Again, this was not an issue before iOS 27.

struct PressDetectView: View {
    @GestureState private var isPressed = false

    var body: some View {
        Rectangle()
            .fill(.green)
            .opacity(isPressed ? 0.5 : 1)
            .gesture(dragGesture)
    }

    private var dragGesture: some Gesture {
        DragGesture(minimumDistance: 0)
            .updating($isPressed) { value, state, _ in
                state = true
                print("drag")
            }
    }
}

Any workarounds?

DragGesture latency on iOS 27
 
 
Q