ViewBuilder

Closure에서 View를 구성하는 custom parameter attribute

그럼이제 앞에서 말한 예를들어 HStack View Builder 는 무엇이냐!

다음은 HStack 의 이니셜라이저입니다.

@inlinable public init(alignment: VerticalAlignment = .center,
                    spacing: CGFloat? = nil,
                    @ViewBuilder content: () -> Content)

어... body 라는 단어는 뭔가 있나요? 왜 var body 만 가능해요?

스크린샷 2022-03-23 오후 7.51.21.png

body 를 사용하지 않으니 protocol 을 채택하지 못한다고 에러가 나오네요!

body 는 암시적으로 @ViewBuilder 로 선언되어있기 때문에 클로저에서 뷰를 구성할 수 있어요!

import SwiftUI

struct ViewA: View {

    var body: some View {
        Text("Hello, World!")
    }
}

struct ViewA_Previews: PreviewProvider {
    static var previews: some View {
        ViewA()
    }
}

출처:

SwiftUI ) ViewBuilder

body

앞서 언급한 것처럼 body 에는 @ViewBuilder 가 선언되어 있습니다.

스크린샷 2022-04-05 오후 6.05.50.png

개발자 문서를 통해서 좀 더 알아봐요!

Structure