swift

swift ui 컨테이너 ( VStack , HStack , ZStack )

호리둥절 2023. 4. 18. 15:18

VStack

수직으로 정렬된 뷰의 컨테이너입니다.

var body: some View {
    VStack(
        alignment: .leading,
        spacing: 10
    ) {
        ForEach(
            1...10,
            id: \.self
        ) {
            Text("Item \($0)")
        }
    }
}

초기화 메서드(init)

init(alignment: HorizontalAlignment, spacing: CGFloat?, content: () -> Content)

alignment: 하위 뷰들의 수평 정렬을 결정합니다. 기본값은 .center입니다.

spacing: 하위 뷰들 사이의 간격을 결정합니다. 기본값은 nil입니다. 이 값이 nil인 경우 시스템에서 적절한 기본값을 사용합니다.

content: 하위 뷰들을 포함하는 클로저입니다.

 

HorizontalAlignment

  • .leading: 하위 뷰를 컨테이너의 왼쪽에 정렬합니다.
  • .center: 하위 뷰를 컨테이너의 중앙에 정렬합니다.
  • .trailing: 하위 뷰를 컨테이너의 오른쪽에 정렬합니다.

HStack

수평으로 정렬된 뷰의 컨테이너입니다.

var body: some View {
    HStack(
        alignment: .top,
        spacing: 10
    ) {
        ForEach(
            1...5,
            id: \.self
        ) {
            Text("Item \($0)")
        }
    }
}

초기화 메서드(init)

init(alignment: VerticalAlignment, spacing: CGFloat?, content: () -> Content)

alignment: 하위 뷰들의 수직 정렬을 결정합니다. 기본값은 .center입니다.

spacing: 하위 뷰들 사이의 간격을 결정합니다. 기본값은 nil입니다. 이 값이 nil인 경우 시스템에서 적절한 기본값을 사용합니다.

content: 하위 뷰들을 포함하는 클로저입니다.

 

VerticalAlignment 

  • .top: 하위 뷰를 컨테이너의 상단에 정렬합니다.
  • .center: 하위 뷰를 컨테이너의 중앙에 정렬합니다.
  • .bottom: 하위 뷰를 컨테이너의 하단에 정렬합니다.

ZStack

겹쳐진 뷰의 컨테이너입니다.

let colors: [Color] =
    [.red, .orange, .yellow, .green, .blue, .purple]

var body: some View {
    ZStack {
        ForEach(0..<colors.count) {
            Rectangle()
                .fill(colors[$0])
                .frame(width: 100, height: 100)
                .offset(x: CGFloat($0) * 10.0,
                        y: CGFloat($0) * 10.0)
        }
    }
}

 

초기화 메서드(init)

init(alignment: Alignment, content: () -> Content)
  • alignment: 하위 뷰들의 정렬 방식을 결정합니다. 기본값은 .center입니다.
  • content: 하위 뷰들을 포함하는 클로저입니다.

Alignment 

  • .center: 하위 뷰를 컨테이너의 중앙에 정렬합니다.
  • .leading: 하위 뷰를 컨테이너의 앞쪽에 정렬합니다.
  • .trailing: 하위 뷰를 컨테이너의 뒷쪽에 정렬합니다.
  • .top: 하위 뷰를 컨테이너의 상단에 정렬합니다.
  • .bottom: 하위 뷰를 컨테이너의 하단에 정렬합니다.
  • .topLeading: 하위 뷰를 컨테이너의 왼쪽 상단에 정렬합니다.
  • .topTrailing: 하위 뷰를 컨테이너의 오른쪽 상단에 정렬합니다.
  • .bottomLeading: 하위 뷰를 컨테이너의 왼쪽 하단에 정렬합니다.
  • .bottomTrailing: 하위 뷰를 컨테이너의 오른쪽 하단에 정렬합니다.

참고사이트

https://developer.apple.com/documentation/swiftui