Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
552 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 Reply

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...