所以我有这个非常基本的网格。它是5列,应该有3行。 但是我不能让编译器编译多于两行....
编译器抱怨:“在调用中的位置11、12、13、14、15处有额外的参数”
如果我删除文本6到10,它会编译....
代码:
struct ContentView: View {
var columns = [
GridItem(spacing: 8, alignment: .leading),
GridItem(spacing: 8, alignment: .center),
GridItem(spacing: 8, alignment: .center),
GridItem(spacing: 8, alignment: .center),
GridItem(spacing: 8, alignment: .center)
]
var body: some View {
LazyVGrid(columns: columns, spacing: 8) {
Text("Buttons").font(.headline)
Text("resting").font(.subheadline)
Text("active").font(.subheadline)
Text("loading").font(.subheadline)
Text("disabled").font(.subheadline)
Text("1").font(.headline)
Text("2").font(.subheadline)
Text("3").font(.subheadline)
Text("4").font(.subheadline)
Text("5").font(.subheadline)
Text("6").font(.headline)
Text("7").font(.subheadline)
Text("8").font(.subheadline)
Text("9").font(.subheadline)
Text("10").font(.subheadline)
}.padding(.horizontal, 10)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
答案 0 :(得分:1)
您已进入ViewBuilder
的10个视图限制...因此,当您使用静态内容时,必须将其包装在Group
/ s中以适应该规则(即不再适用)超过10个视图)
所以,像
var body: some View {
LazyVGrid(columns: columns, spacing: 8) {
Group {
Text("Buttons").font(.headline)
Text("resting").font(.subheadline)
Text("active").font(.subheadline)
Text("loading").font(.subheadline)
Text("disabled").font(.subheadline)
}
Group {
Text("1").font(.headline)
Text("2").font(.subheadline)
Text("3").font(.subheadline)
Text("4").font(.subheadline)
Text("5").font(.subheadline)
Text("6").font(.headline)
Text("7").font(.subheadline)
Text("8").font(.subheadline)
Text("9").font(.subheadline)
Text("10").font(.subheadline)
}
Group {
... other code
}
}.padding(.horizontal, 10)
}
注意: Group
也在视图中,因此最多不应有10个组...但是组可以包含其他组...
但是...当然,以防万一,最好使用动态内容,例如ForEach
。