GridItem
- GridItem에서 지정한 길이는 LazyHGrid는 세로 길이, LazyVGrid는 가로 길이이다
- .fixed는 고정된 값
- .flexible은 상황에 따라 길이만 변한다
- .adaptive는 상황에 따라 길이와 배열된 개수도 바뀐다
let gridItem = GridItem(.fixed(10))
let gridItem = GridItem(.flexible(minimum: 20, maximum: 80), spacing: 50, alignment: .center)
let gridItem = GridItem(.adaptive(minimum: 90, maximum: 200))
LazyHGrid
struct LazyHGrid: View {
var body: some View {
VStack {
ScrollView(.horizontal) {
let gridItem = GridItem(.flexible(minimum: 20, maximum: 80), spacing: 50, alignment: .center)
LazyHGrid(rows: [gridItem, gridItem], alignment: .top, spacing: 10) {
ForEach(0 ..< 50) { item in
Text("\(item)")
.font(.system(size: 70))
}
}
}
}
}
}
- 왼쪽이 .flexible, 오른쪽이 .adaptive
LazyVGrid
- columns라는 옵션은 세로줄의 개수를 정한다
struct LazyVGrid: View {
var body: some View {
ScrollView {
let gridItem = GridItem(.flexible(minimum: 20, maximum: 100), spacing: 50, alignment: .center)
LazyVGrid(columns: [gridItem, gridItem], alignment: .center, spacing: 24) {
ForEach(0 ..< 50) { item in
Text("\(item)")
.font(.system(size: 70))
}
}
}
}
}
- 왼쪽이 .flexible, 오른쪽이 .adaptive