使用行和列构建惰性网格 - SwiftUI
Building a lazy grid with rows and columns - SwiftUI
我想在我的应用程序中创建一个基本上充当 table 的视图。我相信惰性网格是在 iOS 14 中执行此操作的最佳方法,我只是不确定我在用它们做什么。我想创建的那种 table 如下图所示:
每一行都基于 object,Player()
,我有,然后行中的每个数字都是 object 具有的属性,例如player.tries
、player.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 和项目是统一的。您明白了。
我想在我的应用程序中创建一个基本上充当 table 的视图。我相信惰性网格是在 iOS 14 中执行此操作的最佳方法,我只是不确定我在用它们做什么。我想创建的那种 table 如下图所示:
每一行都基于 object,Player()
,我有,然后行中的每个数字都是 object 具有的属性,例如player.tries
、player.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 和项目是统一的。您明白了。