首页 > 解决方案 > SwiftUI ForEach 获取二维数组中的元素和索引

问题描述

我需要访问索引以及 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 )
              }
       }
}

这工作正常。但我想将当前元素的当前数组索引传递给颜色参数。

背景:使用数据存储中的值加载条形图,并按行索引交替颜色。

我不知道在 SwiftUI 中最好的方法是什么。

标签: swiftui

解决方案


您可以使用 ForEach 视图的不同初始化

ForEach(0..<array.endIndex) { index in //inner ForEach
    VStack {
        ReviewChart(dataModel: CalorieViewModel(), 
                    valueHeight: array[index], 
                    cornerRadius: 5, 
                    color: index)
    }
}

推荐阅读