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()
}
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…