Вы должны сначала создать структуру данных, которая представляет структуру вашего представления: попробуйте преобразовать 1...self.getDays()
в 2D-массив, при этом каждый внутренний массив будет одной строкой вашей «сетки». Например, если бы self.getDays
было 10, 2D-массив выглядел бы так:
[
[1,2,3,4,5,6,7],
[8,9,10]
]
После этого мы можем использовать два ForEach
es для «l oop through» (Мы не на самом деле цикл через что-либо. ForEach
на самом деле не oop ...) 2D-массив и создать представление.
Чтобы создать 2D-массив, вы можете использовать один из способов из этот ответ .
И тогда вы можете сделать:
VStack(alignment: .center, spacing: 10) {
// "chunked" does the aforementioned transformation
ForEach(Array(1...self.getDays()).chunked(by: 7), id: \.self) { row in
HStack(alignment: .center, spacing: 10) {
ForEach(row, id: \.self) { day in
DayView(dayNumber: day)
}
}
}
}