Odkryłem, że nowy komponent tabeli SwiftUI 3.0 wygląda na zabawkę, którą można łatwo wykorzystać, ale trudno poszerzyć dodatkowe funkcje.
TableRow i TableColumn są dziedziczone od obiektu value. Jak mogę uzyskać wgląd w wierszu? Chcę zainstalować inny kontekst dla każdego wiersza. Poza tym, chciałabym zapytać kontekst dla nagłówka kolumny.
Jak to zrealizować w oparciu o tabelarycznego składnika? Nie chcę używać składnik listy.
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)
}
}