SwiftUI/Protocol/Scene: Difference between revisions

From Azupedia
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

Scene
Typeprotocol
iOS14.0+
iPadOS14.0+
macOS11.0+
MacCatalyst14.0+
tvOS14.0+
watchOS7.0+
Websitedeveloper.apple.com/documentation/swiftui/scene/

アプリのユーザーインターフェースの一部で、システムによって管理されるライフサイクルのこと。

環境変数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()
            }
        }
    }
}

External Link

【SwiftUI】Sceneプロトコルを読む