[swift] SwiftUI 뷰의 위해 세팅과 갱신

SwiftUI는 애플의 모던 UI 프레임워크로, 간편하게 동적이고 혁신적인 사용자 인터페이스를 구성할 수 있습니다. 이를 위해서는 적절한 세팅과 뷰의 갱신 메커니즘이 필요합니다.

세팅 (Setting up)

SwiftUI 뷰의 세팅은 주로 body 계산 속성(property) 내에서 이루어집니다. 여기서 다른 뷰를 조합하고, 데이터를 연결하며, 레이아웃을 구성하기 위한 코드를 작성합니다.

예를 들어, NavigationView 내에서 List 뷰를 정의하거나, @State@Binding을 활용하여 데이터에 대한 연결을 만들 수 있습니다.

struct ContentView: View {
    @State private var isShowingDetail = false
    
    var body: some View {
        NavigationView {
            List {
                Text("Item 1")
                Text("Item 2")
            }
            .navigationBarTitle("List")
        }
    }
}

위의 코드에서 isShowingDetail 상태를 이용하여 디테일 뷰의 표시 여부를 조절하고, NavigationViewList를 조합하여 리스트 뷰를 만들고 있습니다.

갱신 (Refreshing)

뷰의 갱신은 데이터의 변화나 사용자 입력에 의해 발생할 수 있습니다. Swift에서는 @State 변수의 값이 변경될 때마다 해당 뷰의 갱신이 일어나게 됩니다.

따라서, 뷰를 갱신해야 하는 경우에는 @State 변수의 값을 변경하거나, @ObservedObject를 이용하여 외부에서 데이터의 변화를 감시하는 방법을 사용할 수 있습니다.

struct ContentView: View {
    @State private var count = 0
    
    var body: some View {
        VStack {
            Text("Count: \(count)")
            Button("Increase") {
                self.count += 1
            }
        }
    }
}

위의 코드에서는 @State 변수 count의 값이 버튼을 클릭할 때마다 1씩 증가되므로, 뷰가 해당 변화를 감지하여 자동으로 갱신이 이루어집니다.

SwiftUI에서 뷰의 정의, 세팅, 갱신에 대한 방법을 숙지하면, 간편하고 혁신적인 UI를 구현하는 데 도움이 될 것입니다.

참고 자료