0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SwiftUI @プロパティラッパー

Posted at

State

  • ビューの状態を管理する。状態が変更されるとビューが再描画される。
@State private var count: Int = 0

Binding

  • 親ビューと子ビュー間でデータを双方向にバインディングする。
@Binding var isOn: Bool

ObserverObject

  • 外部のObservableObjectを監視する。通常、ビューの外で管理されるデータを使用する。
@ObserverObject var viewModel = MyViewModel()

Environment

  • 親ビューから提供された環境値を受け取る。テーマや設定など、ビュー階層全体で共有されるデータを使用する。
@Environment(\.colorScheme) var colorScheme

EnvironmentObject

  • 環境オブジェクトを使ってビュー階層全体にデータを渡す。ObservableObjectに準拠したオブジェクトを使う。
@EnvironmentObject var userSettings: UserSettings

Published

  • ObservableObject内のプロパティに使い、そのプロパティが更新されるとビューが更新される。
@Published var name = ""

StateObject

  • ObservadbleObjectのインスタンスをビュー内で管理し、状態を保持する。インスタンスはビューのライフサイクル内で作成される。
@StateObject var viewModel = MyViewModel()

AppStorage

  • ユーザー設定をUserDefaultsと連携して管理する。アプリケーションの設定などを保存するのに便利。
@AppStorage("userTheme") private var theme: String = "light"

MainActor

  • 非同期操作をメインスレッドで実行することを指定する。UIの更新などがメインスレッドで行われることを保証する。
@MainActor func updateUI() {
   // メインスレッドでUI更新
}

ViewBuilder

  • 複数のビューを条件に応じて組み合わせる際に使用する。ビューのクロージャーを組み立てる。
@ViewBuilder var body: some View {
   if isLoggedIn {
        Text("Welcome back!")
   } else {
        Text("please log in")
   }
}

ScaledMetric

  • アクセシビリティ設定に基づいてスケーリングされるサイズを取得する。ユーザーの設定に合わせて自動的にサイズが調整される。
@ScaledMetic(relativeTo: .body) var fontSize: CGFlote = 16

Transaction

  • トランザクション内でプロパティを操作し、状態変更を効率的に管理する。
@Transaction var transactionValue: Int = 0

FocusState

  • フォーカスされている入力フィールドやビューを管理する。フォームなどで現在どのフィールドにフォーカスがあるかを追跡する。
@FocusState private var focusedField: Field?

GestureState

  • ジェスチャー(タップ、ドラッグなど)の状態を追跡する。進行中のジェスチャーの情報を反映させるのに使う。
@GestureState private var dragOffset = CGSiza.zero

StateObject

  • 新しいObservableObjectを作成し、それをビューないで保持する。状態はビューのライフサイクルを通じて維持される。
@StateObject var viewModel = MyViewModel()
0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?