SwiftUI/Protocol/Scene: Difference between revisions
Jump to navigation
Jump to search
imported>Fire Created page with "{{Infobox Swift |name=Scene |Type=protocol |iOS=14.0 |iPadOS=14.0 |macOS=11.0 |MacCatalyst=14.0 |tvOS=14.0 |watchOS=7.0 |Website={{URL|https://developer.apple.com/documentation/swiftui/scene/}} }} アプリのユーザーインターフェースの一部で、システムによって管理されるライフサイクルのこと。 環境変数scenePhaseを使うと onChange のときに状態に応じた処理分岐がかけられる。 enum型で、下記値をとる..." |
(No difference)
|
Latest revision as of 18:52, 11 November 2022
| Type | protocol |
|---|---|
| iOS | 14.0+ |
| iPadOS | 14.0+ |
| macOS | 11.0+ |
| MacCatalyst | 14.0+ |
| tvOS | 14.0+ |
| watchOS | 7.0+ |
| Website | developer |
アプリのユーザーインターフェースの一部で、システムによって管理されるライフサイクルのこと。
環境変数scenePhaseを使うと onChange のときに状態に応じた処理分岐がかけられる。
enum型で、下記値をとる
- .active
- フォアグラウンドでインタラクティブな状態
- .inactive
- フォアグラウンドであるが作業がポーズ状態
- .background
- UIが現在表示されていない状態
struct MyScene: Scene {
@Environment(\.scenePhase) private var scenePhase
@StateObject private var cache = DataCache()
var body: some Scene {
WindowGroup {
MyRootView()
}
.onChange(of: scenePhase) { newScenePhase in
if newScenePhase == .background {
cache.empty()
}
}
}
}