[swift] SwiftUI 뷰의 상태 변경
SwiftUI에서 뷰의 상태를 변경하려면 @State
와 @Binding
을 사용할 수 있습니다. 이러한 속성들은 값을 변경할 때 앱의 상태를 업데이트하고 UI를 다시 그리도록 트리거합니다.
@State 속성
@State
속성은 특정 뷰에서 사용되는 로컬 상태를 선언할 때 사용됩니다. 이 속성에 할당된 값이 변경되면 해당 뷰를 다시 렌더링할 수 있도록 시스템에 트리거를 걸어줍니다.
@State private var isToggled = false
위의 예제에서 isToggled
는 뷰 내에서 로컬하게 관리되는 상태를 나타냅니다. 값을 변경하려면 self.isToggled = true
와 같이 사용할 수 있습니다.
@Binding 속성
@Binding
속성은 다른 뷰나 모델과의 양방향 바인딩을 선언할 때 사용됩니다. 즉, 한 뷰의 상태를 다른 뷰에서 제어할 수 있도록 해줍니다.
struct ContentView: View {
@State private var isToggled = false
var body: some View {
ChildView(isToggled: $isToggled)
}
}
struct ChildView: View {
@Binding var isToggled: Bool
var body: some View {
Toggle("Toggle", isOn: $isToggled)
}
}
위의 예제에서 ChildView
는 ContentView
의 isToggled
상태를 토글 스위치로 제어할 수 있습니다.
결론
SwiftUI에서 뷰의 상태를 변경하기 위해 @State
와 @Binding
을 사용할 수 있습니다. 이를 통해 로컬 상태를 관리하고 다른 뷰와의 상태를 바인딩하여 앱의 상태 변화에 대해 강력한 제어가 가능합니다.