如何循环遍历 SwiftUI 结构中的键?
How to loop through keys in struct for SwiftUI?
我很久以前就完成了 XCode,现在回来学习 SwiftUI。我正在尝试在 HStack 中呈现结构的数据。
结构如下所示:
struct Product: Hashable, Codable{
var column0: Int
var column1: String
var column2: String
var column3: String
var column4: String
}
在视图体内有这样的东西:
var pdt: Product
var body: some View {
HStack {
Text(pdt.column1)
Text(pdt.column2)
}
}
上面的方法可行,但我不想对 column1 或 column2 进行硬编码,因为列数会有所不同。如何将 pdt 用作字典并循环遍历键以便显示所有列?
非常感谢!
这里是一个可能的方法演示(对于这个简单的案例)——您可以反映属性并将它们映射到显示的值(对于 custom/complex 类型,需要更多的努力才能明确想法)。
var body: some View {
let columnValues = Mirror(reflecting: pdt)
.children.map { "\([=10=].value)" }
return HStack {
ForEach(columnValues, id: \.self) { Text([=10=]) }
}
}
我很久以前就完成了 XCode,现在回来学习 SwiftUI。我正在尝试在 HStack 中呈现结构的数据。
结构如下所示:
struct Product: Hashable, Codable{
var column0: Int
var column1: String
var column2: String
var column3: String
var column4: String
}
在视图体内有这样的东西:
var pdt: Product
var body: some View {
HStack {
Text(pdt.column1)
Text(pdt.column2)
}
}
上面的方法可行,但我不想对 column1 或 column2 进行硬编码,因为列数会有所不同。如何将 pdt 用作字典并循环遍历键以便显示所有列?
非常感谢!
这里是一个可能的方法演示(对于这个简单的案例)——您可以反映属性并将它们映射到显示的值(对于 custom/complex 类型,需要更多的努力才能明确想法)。
var body: some View {
let columnValues = Mirror(reflecting: pdt)
.children.map { "\([=10=].value)" }
return HStack {
ForEach(columnValues, id: \.self) { Text([=10=]) }
}
}