본문 바로가기
코딩 공부/Swift

SwiftUI @ViewBuilder 란?

by JH-M 2023. 3. 2.

ViewBuilder는 SwiftUI에서 사용하는 함수형 빌더입니다. ViewBuilder를 사용하면 함수의 반환 값으로 여러 개의 뷰를 반환하는 것이 가능해집니다. ViewBuilder를 사용하면 뷰 계층 구조를 쉽게 작성할 수 있습니다.

ViewBuilder는 함수 또는 프로퍼티의 파라미터로 사용됩니다. ViewBuilder는 주로 if, for, switch 등과 같은 제어문에서 뷰를 반환할 때 유용합니다. 예를 들어 if문에서 뷰를 반환하려면 ViewBuilder를 사용해야 합니다.

ViewBuilder는 some View를 반환합니다. some View는 SwiftUI에서 제공하는 제네릭 뷰입니다. some View는 반환하는 뷰의 타입이 무엇인지 실제로는 알 필요가 없습니다. 이렇게 하면 코드를 간결하게 유지하면서도 편리하게 사용할 수 있습니다.

ViewBuilder는 다음과 같이 사용할 수 있습니다.

func myView<Content: View>(@ViewBuilder content: () -> Content) -> some View {
    VStack {
        Text("This is my View")
        content()
    }
}

struct ContentView: View {
    var body: some View {
        myView {
            Text("Hello World!")
        }
    }
}

위 예제에서 myView 함수는 VStack 뷰를 생성하고, 함수 파라미터인 ViewBuilder의 content 블록을 추가합니다. content 블록은 Text("Hello World!") 뷰를 생성합니다. myView를 호출할 때, Text("This is my View")와 함께 content 블록이 VStack 뷰에 추가되어 뷰 계층 구조가 생성됩니다.

댓글