SwiftUI
[SwiftUI] HStack 하위 요소 > 최대 높이로 동일하게 맞추기
삼쓰_웅쓰
2023. 5. 22. 21:12
반응형
HStack 안에 View 들 중에서 최대 높이의 뷰에 맞추고 싶었으나, 아래와 같이 나오는 문제를 만났다.
AS-IS 에서 TO-BE 로 바꾸고 싶다.
AS-IS | TO-BE |
![]() |
![]() |
AS-IS
코드는 아래와 같다.
원인은 왼쪽은 가운데 Spacer() 가 들어간 VStack 에서 Spacer 로 인해 상위 뷰의 최대 높이만큼 늘어나버리기 때문!
VStack {
HStack(alignment: .bottom) {
VStack(spacing: 0) {
Text("웅쓰")
Spacer()
Text("woongs")
}
.border(.blue, width: 1)
Spacer()
Rectangle()
.foregroundColor(.orange)
.frame(width: 100, height: 150)
}
}
.frame(height: 300)
TO-BE
즉, HStack 의 높이를 Rectangle의 높이인 150까지 맞추고 그 안에서 VStack의 간격만 벌려주고 싶다면,
HStack 의 높이가 한 없이 늘어나지 않도록 사이즈를 고정해줘야 한다.
vertical의 높이를 고정하고 싶으므로 HStack에 아래 코드를 추가한다.
.fixedSize(horizontal: false, vertical: true)
결과 코드는 아래와 같다.
VStack {
HStack(alignment: .bottom) {
VStack(spacing: 0) {
Text("웅쓰")
Spacer()
Text("woongs")
}
.border(.blue, width: 1)
Spacer()
Rectangle()
.foregroundColor(.orange)
.frame(width: 100, height: 150)
}
.fixedSize(horizontal: false, vertical: true)
}
.frame(height: 300)
반응형