Я пытаюсь это решение использования макета Grid.
Мы хотим динамически отображать элементы массива в сетке, и если Array.count Changed выдает ошибку с индексом вне диапазона, появляется и приложение вылетает.
Как это исправить?
var totalrows: Int{
let t = Double(self.cards.count) / Double(self.cols)
return Int(round(t))
}
var cols: Int{
let col = self.verticalSizeClass == .compact ? 4 : 2
return col
}
func colrow (col: Int , row: Int) -> Int{
var colrow = 0
colrow = (row * self.cols) + col
return colrow
}
let cards = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M"]
var body: some View {
VStack{
ForEach(0..<self.totalrows,id:\.self) { row in
HStack {
ForEach(0..<self.cols,id:\.self) { column in
Text(self.cards[self.colrow(col: column, row: row)])
}
}
}
}
}