본문 바로가기

Swift & SwiftUI

Grid

2차원 레이아웃으로 다른 뷰를 정렬하는 컨테이너 뷰

 

기본 사용 방법

Grid {
            GridRow {
                Text("Row 1")
                ForEach(0..<2) { _ in Color.red }
            }
            GridRow {
                Text("Row 2")
                ForEach(0..<5) { _ in Color.green }
            }
            GridRow {
                Text("Row 3")
                ForEach(0..<4) { _ in Color.blue }
            }
            GridRow {
                Text("Row 4")
                ForEach(0..<6) { _ in Color.yellow }
            }
        }

 

.gridCellUnsizedAxes()

- 비어 있는 셀 만들기

struct grid1: View {
    var body: some View {
        Grid{
            GridRow{
                ForEach(0..<5) { i in
                    Text("\(i)")
                        .frame(width: 60, height: 60)
                        .background(.mint)
                }
            }
                
            GridRow{
                ForEach(5..<10) { i in
                    Text("\(i)")
                        .frame(width: 60, height: 60)
                        .background(.mint)
                }
            }
        }
    }
}

struct grid2: View {
    var body: some View {
        Grid{
            GridRow{
                ForEach(0..<5) { i in
                    Text("\(i)")
                        .frame(width: 60, height: 60)
                        .background(.mint)
                }
            }
                
            GridRow{
                ForEach(5..<10) { i in
                    if (i % 2 == 0) {
                        Text("\(i)")
                            .frame(width: 60, height: 60)
                            .background(.mint)
                    }
                    else {
                        Color.clear
                            .gridCellUnsizedAxes([.horizontal, .vertical])
                    }
                }
            }
        }
    }
}

'Swift & SwiftUI' 카테고리의 다른 글

CS 193p Lecture 3~4 정리  (0) 2023.11.22
Networking for beginners  (0) 2023.10.11
Optional Binding, Chaining  (0) 2023.10.09
사용자의 위치정보 가져오기  (0) 2023.10.05
TextField  (0) 2023.09.10