【发布时间】:2021-07-22 18:43:13
【问题描述】:
我正在尝试完成我认为相对简单的事情,即当您点击列表中的项目时让视图全屏显示。 此处显示的代码或多或少有效。但是,我必须准确地点击文本。点击空闲区域不会触发 onTap 事件。
示例代码:
struct ItemListView: View {
var items: [Item]
var titel: String
@State private var selectedItem: Item?
var body: some View {
List(items) { item in
ItemListCell(item: item)
.onTapGesture {
selectedItem = item
}
}
.navigationBarTitle(titel)
.fullScreenCover(item: $selectedItem, onDismiss: nil) { item in
ItemDetailView(item: item)
}
}
}
struct ItemListCell: View {
var item: Item
var body: some View {
Text(String(item.id))
Text(item.name)
}
}
struct ItemDetailView: View {
@Environment(\.presentationMode) var presentationMode
var item: Item
var body: some View {
Text(String(item.id))
Text(item.name)
Button {
presentationMode.wrappedValue.dismiss()
} label: {
Label("Close", systemImage: "xmark.circle")
}
}
}
我还查看了文档中的“支持列表中的选择”一章,但这仅在列表处于编辑模式时有效。
是否有与 UIKit 的 tableView(_:didSelectRowAt:) 等效的 swiftUI?
【问题讨论】:
标签: swiftui