Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
549 views
in Technique[技术] by (71.8m points)

ios - SwiftUI ScrollView detect direction

I have many rows and columns in one scrollView. I want to scroll to one direction at one time. That is when swipe vertically then disable horizontally, vice versa.

When I set:

ScrollView(.vertical) {}

or

ScrollView(.horizontal) {}

separately, the result is what I need.

So my idea is detecting the gesture direction scrollVertically

ScrollView( scrollVertically ? . vertical : .horizontal ) {}

Then should works. Is it possible in SwiftUI or other solutions? Thanks.

Test Code

import SwiftUI

struct ContentView: View {

    var body: some View {

        GeometryReader(content: { geometry in
            ScrollView([.horizontal]) {
                VStack(spacing: 0, content: {
                    ForEach(0..<30, id: .self) { value1 in
                        HStack(spacing: 0) {
                            ForEach(0..<30, id: .self) { value2 in
                                Text("(value1) - (value2)").background(Color.red)
                                    .frame(width: 100, height: 40)
                            }
                        }.padding(EdgeInsets())
                    }
                })
            }.background(Color.yellow)
        })

    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...