SwiftUI/Composing views

How to store views as properties

까칠코더 2019. 12. 2. 13:44
반응형

 

Hacking with Swift 사이트의 강좌 번역본입니다.

 

[원문 : https://www.hackingwithswift.com/quick-start/swiftui/how-to-store-views-as-properties]

 

How to store views as properties

 

다른 뷰 내부에 여러개의 뷰들이 중첩되어 있는 경우에, 쉽게 레이아웃 코드를 만들기 위해 일부 또는 전부에 대한 프로퍼티를 만드는 것이 유용할 수가 있습니다. 그리고나서 뷰 코드 내에 해당 프로퍼리를 인라인으로 참조할수 있고, 명확하게 유지하는데 도움이 됩니다.

 

예를들어, 다음은 프로퍼티처럼 2개의 텍스트 뷰를 만들고나서, VStack내부에 위치시킵니다.

struct ContentView: View {
    let title = Text("Paul Hudson")
                    .font(.largeTitle)
    let subtitle = Text("Author")
                    .foregroundColor(.secondary)

    var body: some View {
        VStack {
            title
            subtitle
        }
    }
}

 

보다시피, 스택안에서 프로퍼티 이름을 작성해서 넣기만 하면 됩니다.

 

하지만, 더 좋은 것은 다음과 같이 modifiers를 해당 프로퍼티 이름에 붙일수 있다는 것입니다.

VStack {
    title
        .foregroundColor(.red)
    subtitle
}

 

title의 기본 스타일은 바뀌지 않고, 단지 특정 사용법 하나만 바꾼것입니다.

반응형