본문 바로가기

SwiftUI

Spacer()

SwiftUI에서 Spacer() 는 기본적으로 남아있는 모든 공간을 차지하도록 동작합니다. 하지만 필요에 따라 임의로 크기를 조정할 수도 있습니다.

 

1. 기본 동작 (정해진 값 없음):

  • Spacer()는 부모 뷰가 가진 남아있는 공간을 최대한 확장합니다.
  • 예를 들어, HStack이나 VStack 내에서 다른 뷰 사이에 Spacer()를 넣으면, 그 뷰들 사이의 공간을 자동으로 나눕니다. 
  • 아래 코드는 두 텍스트 사이에 가능한 모든 공간을 차지하는 Spacer를 배치합니다.
HStack {
    Text("Left")
    Spacer()
    Text("Right")
}

 

2. 크기를 임의로 지정 (frame 사용):

  • Spacer의 크기를 직접 조정하려면 **.frame()**을 사용할 수 있습니다.
  • .frame(height: 50)은 Spacer는 높이가 50인 간격을 생성합니다.
  • width, height, 또는 둘 다 설정 가능하며, 이를 통해 더 정밀한 제어가 가능합니다. 
Spacer()
    .frame(height: 50) // 높이를 50으로 제한

 

 

3. 우선순위 지정 (layoutPriority):

  • Spacer는 뷰 레이아웃 우선순위에 따라 공간을 차지합니다. 특정 Spacer에 더 높은 우선순위를 부여할 수 있습니다.
  • 여기서 첫 번째 Spacer는 더 많은 공간을 차지하게 됩니다. 
HStack {
    Text("Left")
    Spacer().layoutPriority(1) // 우선순위가 높은 Spacer
    Text("Middle")
    Spacer() // 기본 Spacer
    Text("Right")
}

 

결론

  • 기본값: Spacer()는 기본적으로 남는 모든 공간을 차지하지만, 특정 크기를 가지지 않습니다.
  • 임의 조정: .frame()이나 .layoutPriority()를 통해 원하는 크기나 우선순위를 설정할 수 있습니다.

'SwiftUI' 카테고리의 다른 글

@Binding 은 뭐야?  (0) 2025.06.05
@Environment(ModelData.self) var modelData 에서 @Environment는 뭐야?  (0) 2025.06.05
@Observable 이 뭐야?  (0) 2025.06.05
@State란?  (0) 2025.06.05
Hashable, Codable 뭐여?  (0) 2025.06.04