Допустим, у меня есть
struct Person: Identifiable {
var id = UUID()
var name: String
var company: String
}
У меня также есть массив людей, например:
class PeopleList: ObservableObject {
@Published var people = [
Person(name: "Bob", company: "Apple"),
Person(name: "Bill", company: "Microsoft"),
Person(name: "Brenda", company: "Apple"),
Person(name: "Lucas", company: "Microsoft"),
]
//Various delete and move methods
}
Я бы хотел создать список с разделами, где каждый человек сгруппирован на основе своей компании. Я получил следующее, но это дает мне сгруппированные разделы для каждого человека, так что 4 раздела. Я хотел бы закончить с двумя разделами, один для Apple и один для Microsoft.
struct PeopleView: View {
@ObservedObject var peopleList = PeopleList()
var body: some View {
NavigationView {
List {
ForEach(peopleList.people) { person in
Section(header: Text(person.company)) {
Text(person.name)
}
}
}
.listStyle(GroupedListStyle())
}
}
}
Надеюсь, это имеет смысл! Спасибо!