我想在同一NavigationLink
行中有多个List
,以复制CollectionView
的行为。
这是我的代码:
var body: some View {
NavigationView {
ZStack {
Color(.black)
.edgesIgnoringSafeArea(.all)
VStack(alignment: .center, spacing: 10) {
SearchBar(text: $searchViewModel.searchText)
List {
ForEach(0..<searchViewModel.items.count, id: \.self) { index in
HStack(alignment: .center, spacing: 10) {
ForEach(self.searchViewModel.items[index], id: \.id) { item in
self.cellFor(item)
}
Spacer()
}
}
}
}
}
.navigationBarTitle("")
.navigationBarHidden(true)
}
}
func movieCellFor(_ item: SearchItemViewModel) -> some View {
return NavigationLink(destination: MovieDetails(movieId: item.sourceId)) {
cellUiFor(item)
}
}
如果我点击我的一个单元格,它似乎只是“消耗”该行中的每个NavigationLink。我认为这是由于默认的List
行为。有没有办法防止它并连续放置多个NavigationLink
?
我知道我可以将内容放入ScrollView
和VStack
中,但是我想保留List
组件的重用系统。
编辑:
func movieCellFor(_ item: SearchItemViewModel) -> some View {
return Button(action: {}) {
NavigationLink(destination: MovieDetails(movieId: item.sourceId)) { cellUiFor(item) }
}