인프런 커뮤니티 질문&답변

의성님의 프로필 이미지
의성

작성한 질문수

Apple 출신 개발자의 SwiftUI Basic Part 1 기초튼튼

@State

var body: some View는 기본적으로 Vstack인가요?

작성

·

262

1

@state강의에서 Zstack밑에 Hstack을 넣는데 Vstack안에서 쌓는게아니라 단순히 Zstack과 Hstack이 위아래로 배치되는데아무것도 명시하지않을때는 기본적으로 Vstack처럼 동작하는지 궁금합니다

답변 2

0

안녕하세요 Ryan입니다. 먼저 좋은 질문 주셨는데 빠르게 확인하지 못해 양해 부탁드립니다.

먼저 결론부터 말씀드리자면 View에서 보이는 면에서는 VStack으로 명시한 것과 않았을 때 동일한 것처럼 보일 수 있습니다.

다만 layout을 갖고 있느냐 없느냐의 차이가 나게 됩니다.

SwiftUI는 특정 layout을 지정하지 않고 Tuple View를 사용하여 View 컬렉션을 나타냅니다.

layout은 전적으로 Tuple View의 컨테이너에 의해 결정되기 때문에 Vertical layout을 의도하였다면 VStack을 명시적으로 사용해야 하는 거죠.

만약 그렇지 않다면 HStack에선 해당 component가 쌓이게 되면 수평으로, ZStack에선 Component 중첩이 되어 개발자가 의도했던 결과를 컨트롤 할 수 없는 상황이 됩니다.

그래서 View에서 렌더링 된 모습은 같아 보이지만 Vertical Layout을 적용하려면 VStack을 명시하여 의도 된 개발을 할 수 가 있습니다.

 

좋은 질문이어서 다른 분들에게도 도움이 될 것 같습니다. 끝까지 달려주세요👍

0

안녕하세요, 인프런 AI 인턴입니다.

var body: some View에서 기본적으로 VStack으로 쌓이지는 않습니다. SwiftUI에서는 View를 구성할 때 명시적으로 사용할 Stack을 결정해야 합니다. VStack, HStack, ZStack은 모두 다르게 동작하며 각각의 Stack을 사용하여 원하는 방향으로 View를 배치할 수 있습니다. VStack은 수직 스택, HStack은 수평 스택, ZStack은 깊이(Z축 방향)에 따른 쌓기를 나타냅니다. 아무것도 명시하지 않으면 View들은 단순히 나열되지 않고, 오류가 발생하거나 예상치 못한 방식으로 렌더링될 수 있습니다. 따라서 원하는 레이아웃을 얻기 위해서는 반드시 해당 스택을 명시적으로 사용해야 합니다.

의성님의 프로필 이미지
의성

작성한 질문수

질문하기