使用行和列构建惰性网格 - SwiftUI

Building a lazy grid with rows and columns - SwiftUI

我想在我的应用程序中创建一个基本上充当 table 的视图。我相信惰性网格是在 iOS 14 中执行此操作的最佳方法,我只是不确定我在用它们做什么。我想创建的那种 table 如下图所示:

每一行都基于 object,Player(),我有,然后行中的每个数字都是 object 具有的属性,例如player.triesplayer.pens

到目前为止,我的尝试是遍历数组 homeTeam.players 中的所有玩家,并根据各个值创建一个具有不同文本的 HStack。然后我陷入了如何将每一列设置为我想要的宽度,例如名称最宽而所有其他列更小,但标题上方也有标题。我的代码如下:

let layout = [GridItem(.flexible(maximum: 300))]

LazyVGrid(columns: layout){
    HStack{
        Text("Name")
        Spacer()
        Text("T | C | P | DG")
   }
   ForEach(homeTeam.players){ player in
       HStack(spacing: 0){
           Text("player.playerName")
           Spacer()
           Text("\(player.tries) | \(player.convs) | \(player.pens) | \(player.dgs)")
       }
        .padding()
   }
}

如能帮助我们确定尺码和正确位置的所有数字,我们将不胜感激!

不需要网格视图..

Section(header: CustomHeaderView()) {
        VStack(spacing: 0){
            ForEach(items){ item in
                HStack {
                    Text("Field 1")
                    
                    Divider()
                    
                    Text("Field 2")
                    // etc
                }
            }
        }
        .padding()
        .background(Rectangle().strokeBorder(Color.black)
    }

您可以按照自己喜欢的方式设置每个字段的格式,只需确保 header 和项目是统一的。您明白了。