【发布时间】:2021-12-28 00:22:34
【问题描述】:
我发现SwiftUI 3.0新增的表格组件就像一个玩具,可以轻松上手,但很难扩展更多功能。
TableRow 和 TableColumn 继承自值对象。如何获得一行的视图?我想为每一行设置一个不同的 ContextMenu。另外,我想为列标题设置ContextMenu。
如何在Table组件的基础上实现?我不想使用 List 组件。
struct Person: Identifiable {
let givenName: String
let familyName: String
let id = UUID()
}
@State private var people = [
Person(givenName: "Juan", familyName: "Chavez"),
Person(givenName: "Mei", familyName: "Chen"),
Person(givenName: "Tom", familyName: "Clark"),
Person(givenName: "Gita", familyName: "Kumar"),
]
@State private var sortOrder = [KeyPathComparator(\Person.givenName)]
var body: some View {
Table(people, sortOrder: $sortOrder) {
TableColumn("Given Name", value: \.givenName)
TableColumn("Family Name", value: \.familyName)
}
.onChange(of: sortOrder) {
people.sort(using: $0)
}
}
【问题讨论】:
标签: swiftui contextmenu tablerow tablecolumn