【问题标题】:Building a lazy grid with rows and columns - SwiftUI用行和列构建一个惰性网格 - SwiftUI
【发布时间】:2020-12-15 23:26:45
【问题描述】:

我想在我的应用程序中创建一个视图,该视图基本上充当表格。我相信惰性网格是在 iOS 14 中做到这一点的最佳方式,我只是不确定我在用它们做什么。我要创建的表如下图所示:

每一行都基于一个对象Player(),我有,然后行中的每个数字都是对象具有的属性,例如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()
   }
}

非常感谢您在正确位置获得大小和所有数字的帮助!

【问题讨论】:

    标签: swift swiftui lazyvgrid lazyhgrid


    【解决方案1】:

    不需要网格视图..

    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)
        }
    

    您可以按照自己喜欢的方式设置每个字段的格式,只要确保标题和项目是统一的。您会得到图片。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-28
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      相关资源
      最近更新 更多