소개
SwiftUI에서, 스페이서(Spacer
)는 공백을 표시하는 View
입니다.
VStack
, HStack
에서 사용할 수 있습니다.
참고)
ZStack
에서도 코드는 동작하지만ZStack
은 Z축의 스택이기 때문에 아래처럼 겹쳐 보입니다.struct StacksView: View { var body: some View { ZStack { Text("가나다") Spacer() Text("ABC") } } }
Spacer의 기본 사용법
HStack { Text("가나다") Spacer() Image(systemName: "play.fill") }
Spacer()
는View
의 한 종류로 취급되므로 뷰처럼 사용하면 됩니다.- 현재 공간에서 사용할 수 있는 최대한의 공백을 띄워줍니다.
Text
와Image
간Spacer
를 사용하면 텍스트, 이미지 부분을 제외한 나머지 영역 전부를Spacer
가 차지하게 됩니다.- 다음과 같이 여러
Spacer
를 사용할 수 있습니다.
HStack { Text("가나다") Spacer() Image(systemName: "play.fill") Spacer() Text("ABC") Spacer() Image(systemName: "pause.fill") }
참고)
Spacer
또한View
이기 때문에 스택 당 최대 뷰의 개수10개
를 초과하면 오류가 발생합니다.
Spacer의 공백 너비를 조절하는 방법
1) minLength 파라미터 지정
minLength
를 지정하면 최소 너비(또는 높이)를 지정할 수 있습니다. 공백의 크기가 minLength
보다 크다면 해당 크기로 표시되지만 공백의 크기가 minLength
보다 작아지는 경우 minLength
로 고정됩니다.
HStack { Text("가나다") Spacer(minLength: 300) Image(systemName: "play.fill") Spacer() Text("ABC") Spacer() Image(systemName: "pause.fill") }
2) frame에서 size를 지정
HStack
이라면 width
, VStack
이라면 height
를 지정하면 됩니다.
HStack(가로 스택)은 width
HStack { Text("가나다") Spacer() .frame(width: 30) Image(systemName: "play.fill") Spacer() Text("ABC") Spacer() Image(systemName: "pause.fill") }
VStack(세로 스택)은 height
참고: Spacer 없이 Stack 내의 View간 간격을 조절하는 방법
spacing
파라미터를 사용하면 됩니다.
VStack(spacing: 50) { Text("가나다") Image(systemName: "play.fill") Text("ABC") Image(systemName: "pause.fill") }
0개의 댓글