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.

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