Zjistil jsem, že nový stůl je součástí SwiftUI 3.0 je jako hračka, která může být použita snadno, ale je obtížné rozšířit více funkcí.
TableRow a TableColumn dědit z hodnoty objektu. Jak mohu získat pohled na řadě? Chci nastavit jinou kontextovou nabídku pro každý řádek. Kromě toho, chci, aby kontextovou nabídku záhlaví sloupce.
Jak to provést na základě Tabulky component? Nechci použít Seznam komponent.
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)
}
}