【问题标题】:SwiftUI - 'windows' was deprecated in iOS 15.0: Use UIWindowScene.windowsSwiftUI - 'windows' 在 iOS 15.0 中已弃用:使用 UIWindowScene.windows
【发布时间】:2021-11-07 20:21:00
【问题描述】:

我有以下代码块:

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

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

'windows' 在 iOS 15.0 中已弃用:改为在相关窗口场景上使用 UIWindowScene.windows

我尝试使用 UIWindowScene.windows,但它无法以某种方式工作。任何想法如何将其转换为新语法?

【问题讨论】:

标签: swiftui uiapplicationdelegate uiapplication


【解决方案1】:
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)
     }
}

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

  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 how to adjust different screen sizes

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

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

【讨论】:

  • 请记住,Stack Overflow 不仅仅是为了解决眼前的问题,而是为了帮助未来的读者找到类似问题的解决方案,这需要了解底层代码。这对于我们社区的初学者和不熟悉语法的成员来说尤其重要。鉴于此,您能否edit 回答您正在做的事情的解释以及为什么您认为这是最好的方法?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-16
  • 2022-01-14
  • 2021-09-20
  • 2021-12-07
  • 2021-11-18
  • 1970-01-01
  • 2021-09-23
相关资源
最近更新 更多