iOS 13中SwiftUI中的状态栏高度

iOS 13中SwiftUI中的状态栏高度,swiftui,uistatusbar,uiscene,Swiftui,Uistatusbar,Uiscene,如何获取当前场景的状态栏高度,以便在SwiftUI视图中使用 看起来该键正在访问当前场景。从视图控制器,view.window?.windowScene进入场景,但在SwiftUI视图中呢?在创建视图层次结构时,将窗口场景存储在环境对象中。环境对象可以是用于其他应用程序范围数据的现有对象 final类AppData:observateObject{ 让windowScene:UIWindow?//在SwiftUI预览器中为零 初始化(windowScene:UIWindowScene?=nil)

如何获取当前场景的状态栏高度,以便在SwiftUI视图中使用


看起来该键正在访问当前场景。从视图控制器,
view.window?.windowScene
进入场景,但在SwiftUI视图中呢?

在创建视图层次结构时,将窗口场景存储在环境对象中。环境对象可以是用于其他应用程序范围数据的现有对象

final类AppData:observateObject{
让windowScene:UIWindow?//在SwiftUI预览器中为零
初始化(windowScene:UIWindowScene?=nil){
self.windowScene=windowScene
}
}
创建环境对象时设置窗口场景。将对象添加到视图层次结构底部的视图中,例如根视图

let rootView=rootView().environmentObject(AppData(windowScene:windowScene))
最后,使用窗口场景访问状态栏高度

struct MyView:View{
@EnvironmentObject私有变量appData:appData
...
var body:一些观点{
SomeView().frame(高度:self.appData.windowScene?.statusBarManager?.statusBarFrame.height±0)
}
}

创建视图层次时,将窗口场景存储在环境对象中。环境对象可以是用于其他应用程序范围数据的现有对象

final类AppData:observateObject{
让windowScene:UIWindow?//在SwiftUI预览器中为零
初始化(windowScene:UIWindowScene?=nil){
self.windowScene=windowScene
}
}
创建环境对象时设置窗口场景。将对象添加到视图层次结构底部的视图中,例如根视图

let rootView=rootView().environmentObject(AppData(windowScene:windowScene))
最后,使用窗口场景访问状态栏高度

struct MyView:View{
@EnvironmentObject私有变量appData:appData
...
var body:一些观点{
SomeView().frame(高度:self.appData.windowScene?.statusBarManager?.statusBarFrame.height±0)
}
}
并执行相同的操作。也要这样做。