【SwiftUI】@Stateとか@Bindingとかなんなのさ。

SwiftUIは、iOSおよびmacOSアプリケーションを構築するためのモダンなユーザーインターフェースフレームワークです。
SwiftUIでは、アプリケーションの状態管理やデータバインディングなどの機能を提供するために、いくつかのプロパティラッパーが用意されています。
`@State`と`@Binding`はそのうちの2つの重要なプロパティラッパーです。
1. `@State`:
`@State`は、プロパティを変更可能な状態(State)として宣言するために使用します。
SwiftUIビュー内のプロパティを`@State`で宣言すると、そのプロパティの変更がビューに影響を与え、ビューが自動的に再描画されるようになります。
@State`は、ビュー内で単一の値の状態を管理するために使用されます。

   struct ContentView: View {
       @State private var count = 0

       var body: some View {
           Text("Count: \(count)")
           Button("Increment") {
               count += 1 // @Stateプロパティの変更
           }
       }
   }

2. `@Binding`:
`@Binding`は、プロパティを他のビューから参照し、変更できるようにするために使用されます。
`@Binding`を使用すると、値を保持するビューとその値を表示または変更する別のビュー間でデータを共有できます。
   struct DetailView: View {
       @Binding var count: Int

       var body: some View {
           Text("Count in Detail: \(count)")
       }
   }
メインビューから`DetailView`に`@Binding`で渡された`count`プロパティは、`DetailView`内で表示および変更できます。変更はメインビューにも反映されます。
これらのプロパティラッパーは、SwiftUIアプリケーション内でデータの管理と共有を効果的に行うために使用されます。
`@State`はローカルな状態の管理に適しており、`@Binding`は異なるビュー間でデータを双方向に共有するのに適しています。

コメント

このブログの人気の投稿

【iOS】Swiftでtransformから角度、ラジアン、ディグリー、スケールを求める

【android】 Webviewのコントローラー(ピンチイン・ピンチアウトのボタン)を消す

【android】PdfDocumentとPdfRenderer を利用しPDFの作成と表示 (java)