Я понимаю, что NavigationLink, как правило, так:
ForEach(xx, id: \.id) { x in
NavigationLink(
destination: oneView(x: x)) {
XItem(x: x) // Image + Text in VStack
}
}
Однако то, что я хочу сделать, эквивалентно примерно так:
var body: some View {
NavigationView {
List {
ScrollView(.horizontal, showsIndicators: false) {
VStack(alignment: .leading) {
HStack {
ForEach(xx, id: \.id) { x in
XItem(x: x) // Image + Text in VStack
.gesture(
TapGesture()
.onEnded { _ in
NavigationLink(destination: oneView(x: x))
}
)
.gesture(
LongPressGesture(minimumDuration: 2)
.onEnded { _ in
NavigationLink(destination: twoView(x: x))
}
)
}
}
}
}.frame(height: 250)
}
.navigationBarTitle(Text("x"))
}
}
с одним изображением ( или Изображение + Текст в VStack) Я хочу перейти к другому представлению в зависимости от типа жеста. Цени любые решения!