Я не могу заставить мой LazyVGrid отображать более двух строк
Итак, у меня есть очень простая сетка. Это 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()
}
}
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
, на всякий случай.