해결된 질문
작성
·
26
0
강의 관련된 질문은 언제나 환영입니다 😄
코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요)
마크다운을 사용해서 편리하게 글을 작성하세요
먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~
인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요
LocalViewBuilder에서 numberPlate에
ViewBuilder 매크로를 사용해야되는 이유를 LocalViewBuilder에 선언된 ViewType을 사용하려면 이라고 설명해주셨는 데,
그것과는 상관없이 numberPlate 안에서 분기 처리된 항목들(view1, view2, view3)이 다 다른 타입(Text, VStack, Image)이라서 ViewBuilder 매크로를 사용해야되는 것이 아닐까요 ??
설명 듣다가 헷갈려서 질문드립니다.
답변 1
0
안녕하세요 ducduck 님. 질문 주셔서 감사합니다.
정리하자면
제가 설명한 부분: LocalViewBuilder에 선언된 ViewType을 사용해서 조건부 뷰를 만들기 위해 @ViewBuilder가 필요하다.
질문자님이 이해하신 부분: 각 조건에서 반환하는 뷰들이 서로 다른 타입(Text, VStack, Image)이라서 @ViewBuilder가 필요하다.
실제로는 둘 다 연결된 같은 이유입니다!
ViewType enum을 사용해서 → 조건부 분기를 만들고 → 각 분기에서 다른 타입의 뷰를 반환하기 때문에 → @ViewBuilder가 필요
예시로
@ViewBuilder private var numberPlate: some View {
if type == .one { Text("1") } // Text 타입
else if type == .two { VStack{} } // VStack 타입
else { Image("3") } // Image 타입
}
SwiftUI에서 some View
는 단일 타입만 반환할 수 있는데, @ViewBuilder
가 이런 다른 타입들을 하나로 통합해주는 역할을 합니다.
그렇게 때문에 ViewType 을 활용한 조건부 뷰 구현과 서로 다른 타입 처리, 둘 다 @ViewBuilde
r 가 필요한 이유입니다