SwiftUI - 'windows' 在 iOS 15.0 中已弃用:使用 UIWindowScene.windows
Posted
技术标签:
【中文标题】SwiftUI - \'windows\' 在 iOS 15.0 中已弃用:使用 UIWindowScene.windows【英文标题】:SwiftUI - 'windows' was deprecated in iOS 15.0: Use UIWindowScene.windowsSwiftUI - 'windows' 在 iOS 15.0 中已弃用:使用 UIWindowScene.windows 【发布时间】:2021-11-07 20:21:00 【问题描述】:我有以下代码块:
struct ***: 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,但它无法以某种方式工作。任何想法如何将其转换为新语法?
【问题讨论】:
在窗口上使用safeAreaInsets
真的很重要吗?与尝试查询 UIWindow
相比,SwiftUI 对内置的安全区域有更好的原生支持
这能回答你的问题吗? How to get rid of message " 'windows' was deprecated in iOS 15.0: Use UIWindowScene.windows on a relevant window scene instead" with AdMob banner?
【参考方案1】:
struct ***: 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)
取决于您的需要,这里有更多关于此的内容:
https://developer.apple.com/documentation/swiftui/text/padding(_:)-5wi61
https://www.hackingwithswift.com/quick-start/swiftui/how-to-inset-the-safe-area-with-custom-content
SwiftUI how to adjust different screen sizes
https://developer.apple.com/news/?id=nixcb564
https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/adaptivity-and-layout/
【讨论】:
请记住,Stack Overflow 不仅仅是为了解决眼前的问题,而是为了帮助未来的读者找到类似问题的解决方案,这需要了解底层代码。这对于我们社区的初学者和不熟悉语法的成员来说尤其重要。鉴于此,您能否edit 回答您正在做的事情的解释以及为什么您认为这是最好的方法?以上是关于SwiftUI - 'windows' 在 iOS 15.0 中已弃用:使用 UIWindowScene.windows的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI:在 iOS 14 上点击返回时导航链接崩溃,但在 iOS 13 上没有