如何遍历 SwiftUI 结构中的键?
Posted
技术标签:
【中文标题】如何遍历 SwiftUI 结构中的键?【英文标题】:How to loop through keys in struct for SwiftUI? 【发布时间】:2020-07-16 10:45:00 【问题描述】:我很久以前做过 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 用作字典并循环遍历键以便显示所有列?
提前非常感谢!
【问题讨论】:
【参考方案1】:这是一个可能的方法的演示(对于这个简单的案例) - 您可以反映属性并将它们映射到显示的值(对于自定义/复杂类型,这需要更多的努力,思路应该很清楚)。
var body: some View
let columnValues = Mirror(reflecting: pdt)
.children.map "\($0.value)"
return HStack
ForEach(columnValues, id: \.self) Text($0)
【讨论】:
我必须说我对 SwiftUI 完全陌生,所以我可能会犯一个非常初学者的错误。我收到错误“未分类:Command CompileSwiftSources failed with a nonzero exit code”。 好的,我收回!我重新启动,现在它工作正常!谢谢! 如果结构中的变量是optionals
会发生什么?我们如何打开它们?以上是关于如何遍历 SwiftUI 结构中的键?的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI 中的 List 是不是复用类似于 UITableView 的单元格?
使用本地 JSON 中的键:值更改按钮/标签文本 - SwiftUI