iOS 26 Beta breaks scroll/gesture in SwiftUI chat (worked in iOS 18): Simultaneous gestures & ScrollViewReader issues

Hi all,

After upgrading to the iOS 26 beta, the scrolling in my SwiftUI chat view is completely broken. The exact same code works perfectly on iOS 18.

Context: I have a chat view using ScrollViewReader and a vertically-reversed ScrollView (with .rotationEffect(.degrees(180))). Each message row (MessageBubble) uses multiple simultaneousGesture handlers:

  • Horizontal drag for swipe-to-reply (and other actions: pin, delete)
  • Long press for showing popover/actions
  • Vertical scroll for normal chat scrolling

This was working great on iOS 18. In iOS 26 beta, the vertical scroll is either completely disabled, jittery, or hijacked by the message row’s drag gestures, even though .simultaneousGesture is used (see code below).

Minimal Repro Sample

MessageListView.swift

swift Copy Edit

ScrollViewReader { proxy in
    ScrollView(.vertical, showsIndicators: false) {
        LazyVStack(spacing: 0) {
            // ... grouped messages
            ForEach(...) { ... 
                MessageBubble(...) // see below
            }
            Color.clear.frame(height: 8).id("BOTTOM_ANCHOR")
        }
        .padding(.horizontal, 4)
        .rotationEffect(.degrees(180))
    }
    .rotationEffect(.degrees(180))
}

MessageBubble.swift

struct MessageBubble: View {
    // ...
    var body: some View {
        // horizontal swipe-to-reply gesture
        let dragGesture = DragGesture(minimumDistance: 10)
            // ...
        ZStack {
            // ...
            HStack { ... }
                // ...
                .simultaneousGesture(
                    DragGesture(minimumDistance: 0) // for long press
                        // ...
                )
                .simultaneousGesture(dragGesture) // for horizontal swipe
        }
        // ...
    }
}

I am also seeing this issue. We also see it in a more simple case:

ScrollView {
    HStack { ... }
        .simultaneousGesture(
            DragGesture(minimumDistance: 0)
                // ...
            )
}

Was using simultaneousGesture to get around this issue: https://developer.apple.com/forums/thread/763436 But now it is broken as well.

I am also seeing this issue. But if I build my app with Xcode 16.4 and run on iOS 26 the gestures seem fine. It seems building against iOS 26 sdk causes gesture conflicts for scrolling the scrollview and any tap/longpress/drag list row interactions.

I can confirm the same issue on iOS 26 beta 6. We have been using simultaneousGesture() as a workaround for the well-known bug, which is the same one BAR115 mentioned earlier.

However, this workaround appears to be broken as well. At the moment, it seems there is no reliable way to use buttons inside sheets.

This is just ridiculous.

I’m also seeing this issue on my end.

In our app we use Swift Charts inside a ScrollView, with simultaneous gestures applied in the chart’s overlay block (for interactions like drag/tap on data points). Since iOS 26 beta 1, this completely breaks the parent ScrollView’s vertical scrolling.

This was never a problem on iOS 18, the exact same code works fine there. I also noticed that the release notes for beta 5 and beta 6 mention fixes for simultaneousGesture conflicts in scroll views, but this bug is still reproducible. So unfortunately, it’s not fixed yet, and I haven’t found a workaround so far.

Seeing the same issue on beta 9. This is a big blocker for us.

Same problem in my app that uses a Swift Chart in a ScrollView with simultaneous gestures for long press/drag to inspect data points, etc. The same code works when building in Xcode 16 when running on iOS 26 in the simulator and real device. Compiling the same code with Xcode 26 has the vertical scroll broken when you initial the scroll on a Swift Chart that has the gestures.

Are there any updates or workarounds?

I recommend not using the default value when including fields. Maybe in iOS 26 the logic behind "GestureMask.all" changed. Using ".subviews" helped me.

I figured my issues by taking this approach:

https://gist.github.com/tanmays/4213cc6f76241c5d4e4bdb6e53ce310d

That left me with having to disable the new system wide swap back, which was triggering and conflicting when I dragged my chart to the right. Setting interactiveContentPopGestureRecognizer.isEnabled to false helped with that

iOS 26 Beta breaks scroll/gesture in SwiftUI chat (worked in iOS 18): Simultaneous gestures & ScrollViewReader issues
 
 
Q