CoreData SectionedFetchRequest und Sections

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • CoreData SectionedFetchRequest und Sections

    Hey! Ich habe in CoreData mehrere Einträge mit Datum. Ich würde gerne eine SwiftUI Bauen, die in Sections alle Einträge mit dem selben Jahr und darunter eine Section mit allen Einträgen vom selben Monat und darin dann eine Liste von Tagen. Wenn's geht dann noch Collapsable.

    Also so:

    Quellcode

    1. 2023 v
    2. Januar v
    3. 03.01.2023
    4. 15.01.2023
    5. Februar v
    6. 21.02.2023
    7. 22.02.2023
    8. 2022 v
    9. Mai v
    10. 07.05.2022
    11. 18.05.2022
    12. Juli v
    13. ....
    14. ....
    Alles anzeigen
    Ich finde einfach nichts das erklärt wie ich das hinbekommen kann.
    Selbst das "collapsable" bekomme ich mit Test Views nicht hin, habe .listStyle(.sideBar) genommen und es kommt kein Collapse Icon an den Sections.

    Ich hoffe mir kann jemand einen Tipp geben.

    Grüße

    Dirk
  • Danke, aber irgendwie komme ich nicht weiter. Ich habe mir mal die View zusammen gebaut, wie ich sie mir vorstelle. Ich habe nur keine Idee wie ich die Core Data Daten in eine solche Struktur bekomme, um die View so hinzubekommen.

    Quellcode

    1. List {
    2. ForEach((2020...2023).reversed(), id: \.self) { year in
    3. Section("\(year, format: .number.grouping(.never))", isExpanded: $isExpanded2) {
    4. ForEach(1...12, id: \.self) { month in
    5. DisclosureGroup(
    6. isExpanded: $isExpanded) {
    7. ForEach(1...3, id: \.self) {_ in
    8. HStack {
    9. VStack(alignment: .leading) {
    10. Text("Start Datum")
    11. .font(.system(size: 9))
    12. Text("Start Zeit")
    13. .font(.system(size: 9))
    14. }
    15. .frame(width:60)
    16. Divider()
    17. VStack(alignment: .leading) {
    18. Text("End Datum")
    19. .font(.system(size: 9))
    20. Text("End Zeit")
    21. .font(.system(size: 9))
    22. }
    23. .frame(width:60)
    24. Divider()
    25. Text("Location")
    26. .font(.system(size: 9))
    27. .frame(width:90)
    28. Divider()
    29. Text("Dauer")
    30. .font(.system(size: 9))
    31. }
    32. }
    33. HStack {
    34. Text("Summe")
    35. .font(.system(size: 15))
    36. .bold()
    37. Spacer()
    38. Divider()
    39. Text("123 hours 45 minutes")
    40. .font(.system(size: 13))
    41. .bold()
    42. }
    43. } label: {
    44. Text(getMonthName(month))
    45. .font(.system(size: 15))
    46. .bold()
    47. }
    48. }
    49. }
    50. }
    51. }
    52. .listStyle(SidebarListStyle())
    Alles anzeigen