【问题标题】:SwiftUI ForEach get element AND index in 2d arraySwiftUI ForEach 获取二维数组中的元素和索引
【发布时间】: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 中最好的方法是什么。

【问题讨论】:

    标签: 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 并重新启动,然后清理项目,错误就消失了。谢谢!
    猜你喜欢
    • 2020-06-30
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多