如何在SwiftUI的视图上使用Foreach?

时间:2020-02-03 04:35:19

标签: ios swift foreach swiftui

我正在使用Xcode 11.3和Swift5开发我的第一个iOS应用。

但是我只能在视图上使用ForEach。

我想使用Foreach在ZStack中放置某些struct,但仍然会出错。

Error : Unable to infer complex closure return type; add explicit type to disambiguate

我不知道该如何解决。你能帮我吗?

/* Struct I want to put in */
struct Verses: Identifiable{
    var id: Int
    var verse : Int
}
/* I want to load all values from struct using foreach in view. */
        ZStack {
            ForEach(controller.verses) { w in              <- Here is where I get error.

                Rectangle()
                    .foregroundColor(Color.white)
                .cornerRadius(28)
                    .opacity(0.4)
                    .offset(x:0, y:68)
                    .frame(width:290, height:280)

                CardView(date: w.date)
                .gesture(DragGesture()
                .onChanged({ (value) in
......


1 个答案:

答案 0 :(得分:1)

ForEach行必须由 single 视图表示,因此您需要类似以下内容(我仍然不确定容器的类型,仅举例来说)

ForEach(controller.verses) { w in
  ZStack {
    Rectangle()
        .foregroundColor(Color.white)
    .cornerRadius(28)
        .opacity(0.4)
        .offset(x:0, y:68)
        .frame(width:290, height:280)

    CardView(date: w.date)
    .gesture(DragGesture()
    .onChanged({ (value) in

    ...
  }
}