How to only disable scroll in ScrollView but not content view?

UPDATE

If your deployment target is iOS 16 (macOS 13) or later, you can use the scrollDisabled modifier to enable or disable scrolling.

ORIGINAL

Only pass .horizontal as the scroll axis if you want the view to scroll. Otherwise, pass the empty set.

struct TestView: View {
    @Binding var shouldScroll: Bool

    var body: some View {
        ScrollView(axes, showsIndicators: false) {
            Text("Your content here")
        }
    }

    private var axes: Axis.Set {
        return shouldScroll ? .horizontal : []
    }
}

Leave a Comment