[swift] 레이아웃에서 데이터 바인딩 및 자동 갱신 처리하기

1. 데이터 모델 만들기

먼저, 화면에 표시할 데이터 모델을 만들어야 합니다. 예를 들어, 간단한 사용자 정보 모델을 작성해 보겠습니다.

struct User {
    var name: String
    var age: Int
}

2. 뷰에 데이터 연결하기

다음으로, 데이터 모델을 사용하여 뷰를 구성합니다. 아래의 예시 코드는 사용자 정보를 보여주는 뷰를 정의하는 방법을 보여줍니다.

import SwiftUI

struct UserView: View {
    @State var user: User

    var body: some View {
        VStack {
            Text("Name: \(user.name)")
            Text("Age: \(user.age)")
        }
    }
}

위의 코드에서 @State 속성은 해당 데이터가 변경될 때 뷰를 다시 렌더링하도록 만들어줍니다.

3. 자동 갱신

이제 데이터 모델이 변경될 때마다 해당 뷰가 자동으로 갱신되도록 바인딩을 설정해야 합니다.

struct UserView: View {
    @State var user: User

    var body: some View {
        VStack {
            Text("Name: \(user.name)")
            Text("Age: \(user.age)")
        }
        .onReceive(user.$name) { newName in
            self.user.name = newName
        }
    }
}

위 코드에서 onReceive 함수를 사용하여 user 객체의 name 속성을 감시하고, 변경될 때마다 해당 값을 업데이트하도록 합니다.

이제 데이터와 뷰를 바인딩하고, 데이터가 변경될 때마다 뷰가 자동으로 업데이트되도록 처리하는 방법에 대해 알아보았습니다. SwiftUI의 이러한 기능을 통해 UI 갱신 관련 로직을 간단하고 효과적으로 처리할 수 있습니다.

참고 문헌: