【发布时间】:2020-06-24 15:13:53
【问题描述】:
我试图在 SwiftUI 应用启动时计算屏幕安全区域大小,以便我可以从不同屏幕大小的 iOS 设备的安全区域矩形中得出组件大小。
UIScreen.main.bounds - 我可以在开始时使用它,但它给了我整个屏幕而不是安全区域
GeometryReader - 使用它我可以获得安全区域的 CGSize,但我找不到将它发送到任何地方的方法 - 尝试使用通知和简单的函数,这两者都会导致错误
最后,我尝试在初始视图中使用 .onPreferenceSet 事件,然后在该闭包中在参考文件中设置一个 CGSize 变量,但由于某种原因,这样做会使第一个视图初始化两次。有谁知道在应用启动时获得边缘插图或安全区域大小的好方法?
【问题讨论】:
-
为什么要在任何地方发送安全区的大小?
-
你会在代码中显示你想要做什么但它不起作用吗?
-
@pawello2222 - 我想在启动时创建一个文件,其中包含其他视图可以参考的测量值列表
-
@JohnOfIreland 在 SwiftUI 中通常不需要它。请分享您的代码,以便我们为您提供帮助。
-
有效,但会触发 ContentView() 的其余部分两次
标签: swiftui