【发布时间】:2020-12-19 19:09:58
【问题描述】:
用户界面:https://imgur.com/a/0BbJBFc
我在示例代码中使用ForEach 来遍历矿物数组,但我找不到合适的解决方案来循环矿物下方的第二个数组(矿物量)。
在不同的项目中,到目前为止,我做到了ForEach 循环两个数组,但对于每种矿物,都显示Planet 的所有数量,第二个矿物显示Planet 的所有数量等等。
我确实创建了一个包含两个数组的新结构,但没有成功。添加绑定属性也失败了。我希望学习一种新的快速方法来实现愿望的外观。
数据文件
import Foundation
struct Planet: Identifiable {
var id = UUID()
var name: String
var minerals: [String]
var mineralAmount: [String]
}
let planetsData: [Planet] = [
Planet(name: "Jupiter", minerals: ["Iron", "Gold", "Copper"], mineralAmount: ["10K", "20K", "30K"]),
Planet(name: "Earth", minerals: ["Lithium", "Aluminium", "Quartz"], mineralAmount: ["40K", "50K", "60K"])
]
内容视图
import SwiftUI
struct ContentView: View {
var planet: Planet
var body: some View {
VStack() {
ForEach(planet.minerals, id: \.self) { item in
Text(item)
.font(.system(size: 22, weight: .regular))
.foregroundColor(.primary)
Text("amount to be added")
.font(.system(size: 22, weight: .regular))
.foregroundColor(.primary)
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView(planet: planetsData[0])
}
}
[1]: https://i.stack.imgur.com/4MDKs.png
【问题讨论】:
-
其实我还没有得到目标,你想遍历
planetsData,然后遍历每个行星的minerals,对吧? -
矿物正下方是什么意思?您是否在同一页面上寻找两个不同的列表,一个是矿物,第二个是单个星球的矿物含量?您能否提供一些有关最终所需 UI 的示例?
-
没有。我想遍历矿物质,然后遍历矿物质量。一个列表以大字体显示“Iron”,在“10K”下方以小字体显示。
-
@emreoktem 刚刚添加了一个 UI 参考