![](/img/trans.png)
[英]Javascript: Switch from importing data from XML file to importing data from a JS object array
[英]Grouped List in SwiftUI importing data from swift file
我可以使用以下代碼在 SwiftUI 中創建分組列表:
import SwiftUI
struct ContentView: View {
var body: some View {
List {
Section(header: Text("Freyr / Freya's Aett")) {
}
Section(header: Text("Heimdall's Aett")) {
}
Section(header: Text("Tyr's Aett")) {
}
Section(header: Text("Additional Runes")) {
}
}.listStyle(GroupedListStyle())
}
}
我有一個單獨的 swift 文件,它將數據存儲在 Arrays 中,但是我無法像在 Storyboards 中使用以下代碼時那樣將其導入我的列表。
import Foundation
import SwiftUI
struct Rune: Identifiable {
var runeName: String
var runeImage: String
var runeDescription: String
let id = UUID()
}
//MARK: - Runes Array Standard Orientation
var runeTitle = [["Freyr/Freya's Aett"], ["Heimdall's Aett"], ["Tyr's Aett"], ["Additional Runes"]]
let runesArray = [[Rune(runeName: "Fehu", runeImage: String(("Fehu")), runeDescription: "Description Goes Here")],
[Rune(runeName: "Hagalaz", runeImage: String(("Hagalaz")), runeDescription: "Description Goes Here")],
[Rune(runeName: "Tiwaz", runeImage: String(("Tiwaz")), runeDescription: "Description Goes Here")],
[Rune(runeName: "Blank Rune", runeImage: String(("Blank")), runeDescription: "Description Goes Here")]]
您只需要一種方法來確定每個部分中的內容。 這種特殊的方式效率很低,因為它runesArray
每個部分的runesArray
每個項目,但您可以可視化正在發生的事情,然后處理您的數據。
import SwiftUI
struct SectionedList: View {
var body: some View {
List {
Section(header: Text(runeTitle[0][0])) {
ForEach(runesArray, id: \.id){rune in
if rune.runeTitle == runeTitle[0][0]{
Text(rune.runeName)
}
}
}
Section(header: Text(runeTitle[1][0])) {
ForEach(runesArray, id: \.id){rune in
if rune.runeTitle == runeTitle[1][0]{
Text(rune.runeName)
}
}
}
Section(header: Text(runeTitle[2][0])) {
ForEach(runesArray, id: \.id){rune in
if rune.runeTitle == runeTitle[2][0]{
Text(rune.runeName)
}
}
}
Section(header: Text(runeTitle[3][0])) {
ForEach(runesArray, id: \.id){rune in
if rune.runeTitle == runeTitle[3][0]{
Text(rune.runeName)
}
}
}
//This is another way to do it.
/*
ForEach(0..<runeTitle.count){idx in
Section(header: Text(runeTitle[idx][0])) {
ForEach(runesArray, id: \.id){rune in
if rune.runeTitle == runeTitle[idx][0]{
Text(rune.runeName)
}
}
}
}
*/
}.listStyle(GroupedListStyle())
}
}
struct Rune: Identifiable {
var runeName: String
var runeImage: String
var runeDescription: String
var runeTitle: String
let id = UUID()
}
//MARK: - Runes Array Standard Orientation
var runeTitle = [["Freyr/Freya's Aett"], ["Heimdall's Aett"], ["Tyr's Aett"], ["Additional Runes"]]
let runesArray = [Rune(runeName: "Fehu", runeImage: String(("Fehu")), runeDescription: "Description Goes Here", runeTitle: runeTitle[0][0]),
Rune(runeName: "Hagalaz", runeImage: String(("Hagalaz")), runeDescription: "Description Goes Here", runeTitle: runeTitle[1][0]),
Rune(runeName: "Tiwaz", runeImage: String(("Tiwaz")), runeDescription: "Description Goes Here", runeTitle: runeTitle[2][0]),
Rune(runeName: "Blank Rune", runeImage: String(("Blank")), runeDescription: "Description Goes Here", runeTitle: runeTitle[3][0])]
我將runeTitle
添加到您的Rune
結構中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.