ios - 如何获取 ForEach 循环内项目的索引?

标签 ios arrays swift foreach swiftui

我有一个正在循环的数组数组。该数组的结构代表一年的 4 个季度:

Q0 一月、二月、三月
Q1 四月、五月、六月
Q2 七月、八月、九月
第三季度 10 月、11 月 12 月

@State var quarters: [[Month]] = [[.init(name: "January"),.init(name: "February"),.init(name: "March")],
                               [.init(name: "April"), .init(name: "May"), .init(name: "June")],
                               [.init(name: "July"),.init(name: "August"),.init(name: "September")],
                               [.init(name: "October"), .init(name: "November"), .init(name: "December")]]

在下面的 HStack 中,我尝试附加季度的索引,以便最终得到 Q0、Q1、Q2、Q3

VStack {

    ForEach (self.quarters, id: \.self) { quarter in
        VStack {
        Spacer()
            HStack {

                Text("Q\(quarter.index)")
                .font(.system(size: 40, weight: .black, design: .rounded))

            }
        }
    }
}

这不起作用。有没有办法在这里获取 ForEach 循环数组内的数组索引?我知道如果 ForEach 循环使用范围作为其数据集,则有一种方法可以检索索引,但如果数据集是数组,则不能。

最佳答案

您可以使用枚举数组来实现:

   struct TempView: View{

   @State var quarters: [[Month]] = [[.init(name: "January", products: ["1", "2"]),.init(name: "February", products: ["1", "2"]),.init(name: "March", products: ["1", "2"])],
[.init(name: "April", products: ["1", "2"]), .init(name: "May", products: ["1", "2"]), .init(name: "June", products: ["1", "2"])]]

  var body: some View {

        ForEach (self.quarters.indices , id: \.self) { (index) in

        VStack {
        Spacer()
            HStack {
                Text("Q\(index)")
                .font(.system(size: 40, weight: .black, design: .rounded))
                Button("TestButton",action: {
                    self.quarters.append([.init(name: "January", products: ["1", "2"]),.init(name: "February", products: ["1", "2"]),.init(name: "March", products: ["1", "2"])])
                })
            }
             Spacer()
        }
    }

 }}                                                                                                

关于ios - 如何获取 ForEach 循环内项目的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58615941/

相关文章:

ios - 麦克风输入到 iOS 中的扬声器输出?

ios - 通过 Xcode 自动刷新团队配置文件中的 IOS 设备

javascript - 如何使用纯 javascript 将输入值保存在 JSON 对象中,然后将其保存在数组中?

javascript - 根据 Javascript 中的其他信息填充数组的最有效方法是什么?

uitableview - 单击tableviewcell上的按钮时如何刷新tableview

ios - Facebook iOS SDK 拉取好友数据问题

ios - 显示最佳成绩 Cocos2d 3.0

php - 如何将这些数据分组到数组中?

swift - 在 Swift 中使用可选对象遍历数组的结果令人惊讶

ios - 如何在ios swift形式的控件之间添加控件