【发布时间】:2019-11-06 02:06:22
【问题描述】:
正如标题所说,我正在尝试全屏显示视图(使其延伸到SafeArea),但SwiftUI 似乎总是将视图与safeArea 对齐。
在研究了一段时间后,我发现.edgesIgnoringSafeArea(.all) 这似乎是一种非常简单的方法。问题是它不起作用。视图仍然不是全屏。下面是一些示例代码:
struct ContentView : View {
var body: some View {
Text("Test")
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
.edgesIgnoringSafeArea(.all)
.background(Color.red)
}
}
【问题讨论】:
-
我相信
edgesIgnoringSafeArea所做的只是 center 忽略安全区域的视图内容。你的问题是真的 - 为什么你想忽略安全区域?几年来,Apple 一直在指导开发人员尊重安全区域 - 事实上,我相信很快就会(如果还没有提出拒绝理由的话。有一种方法(至少在 @ 987654327@) 以“忽略”安全区域...隐藏状态栏。也许在SwiftUI中找到一种方法。 -
感谢您的评论。隐藏状态栏确实有效,谢谢,但我想我会继续寻找解决方案而不必隐藏状态栏。我想忽略它的原因是我想在顶部显示一个 MKMapView,它也应该在缺口后面(就像在 Apple Maps 应用程序中一样)。它只是为了好看。
-
@dfd 有很多理由忽略安全区域;例如,您可能希望为视图提供自定义背景。如果你有一张图片作为背景,它看起来真的很难看,但顶部和底部都有白条。您不应该将诸如用户直接与之交互的 UI 元素之类的东西放在安全区域中,例如按钮。