SwiftUI - iOS 15.0 中已弃用“windows”:使用 UIWindowScene.windows

Swi*_*kie 6 uiapplication uiapplicationdelegate swiftui

我有以下代码块:

struct StackOverflow: View {
    var body: some View {
        Text("Hello, World!")
            .padding(.bottom,UIApplication.shared.windows.first?.safeAreaInsets.bottom ?? 15)
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,这会返回以下错误:

iOS 15.0 中已弃用“windows”:在相关窗口场景上使用 UIWindowScene.windows

我尝试利用 UIWindowScene.windows 但它无法正常工作。有什么想法如何将其转换为新语法吗?

Gal*_*Gal 11

struct StackOverflow: View {
    
    var body: some View {
        let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene
        let window = windowScene?.windows.first

        Text("Hello, World!")
           .padding(.bottom, window?.safeAreaInsets.bottom ?? 15)
     }
}
Run Code Online (Sandbox Code Playgroud)

取决于您的需要,这里还有更多相关内容:

  1. https://developer.apple.com/documentation/swiftui/text/padding(_:)-5wi61

  2. https://www.hackingwithswift.com/quick-start/swiftui/how-to-inset-the-safe-area-with-custom-content

  3. SwiftUI如何调整不同的屏幕尺寸

  4. https://developer.apple.com/news/?id=nixcb564

  5. https://developer.apple.com/design/ human-interface-guidelines/ios/visual-design/adaptivity-and-layout/