SwiftUI ForEach 获取二维数组中的元素和索引
Posted
技术标签:
【中文标题】SwiftUI ForEach 获取二维数组中的元素和索引【英文标题】:SwiftUI ForEach get element AND index in 2d array 【发布时间】:2020-01-14 13:16:13 【问题描述】:我需要访问索引以及 ForEach 循环中的元素。
到目前为止,我的数据存储中有:
@Published var sevenDayReview: [[CGFloat]] = [
[1754,1654],[1854,1687],[1985,1854],[1765,1652],[1864,1698],[1987,1654],[1865,1465]
]
在我看来:
ForEach(self.dataModel.sevenDayReview, id: \.self) array in
ForEach(array, id: \.self) element in
VStack
ReviewChart(dataModel: CalorieViewModel(), valueHeight: element, cornerRadius: 5, color: 2 )
这工作正常。但是我想将当前元素的当前数组索引传递给 color 参数。
背景:使用数据存储区中的值加载条形图并按行索引交替颜色。
我不知道在 SwiftUI 中最好的方法是什么。
【问题讨论】:
【参考方案1】:您可以使用 ForEach 视图的different init:
ForEach(0..<array.endIndex) index in //inner ForEach
VStack
ReviewChart(dataModel: CalorieViewModel(),
valueHeight: array[index],
cornerRadius: 5,
color: index)
【讨论】:
谢谢。我试过了,得到以下错误:“不能下标不正确或不明确类型的值”。编译器标记数组[index] 您需要注意,很多时候您遇到的错误与 XCode 在处理 SwiftUI 时向您显示的错误不同。index
是 Int 所以这个错误应该是无效的。
你是对的,我不得不关闭 XCode 并重新启动,然后清理项目,错误就消失了。谢谢!以上是关于SwiftUI ForEach 获取二维数组中的元素和索引的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI - 在 ForEach 中获取 TextField 数组
为啥我不能访问这个数组 ForEach 循环中的数据? SwiftUI