J'ai trouvé que le nouveau composant de tableau de SwiftUI 3.0 est comme un jouet, qui peut être utilisé facilement, mais il est difficile de développer plus de fonctions.
TableRow et TableColumn hériter de la valeur de l'objet. Comment puis-je obtenir le point de vue d'une ligne? Je veux mettre un autre ContextMenu pour chaque ligne. En outre, je tiens à mettre le ContextMenu pour l'en-tête de colonne.
Comment mettre en œuvre sur la base de composant de Tableau? Je ne veux pas utiliser le composant de Liste.
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)
}
}