如何在swiftUI中删除顶部安全区域

Posted

技术标签:

【中文标题】如何在swiftUI中删除顶部安全区域【英文标题】:How to remove the top safe area in swiftUI 【发布时间】:2019-07-16 08:23:24 【问题描述】:

我正在使用 SwiftUI 开发一个屏幕,想在屏幕的顶部安全区域显示我的视图,在 SwiftUI 中有什么方法可以实现吗?

【问题讨论】:

【参考方案1】:

使用这个修饰符:

.edgesIgnoringSafeArea(.top)

如果你想忽略所有的安全区域插入,你可以通过.all

【讨论】:

。 edgeIgnoringSafeArea(.top) 在这种情况下要好得多 我应该将这个应用到手表的哪个视图?【参考方案2】:

SwiftUI 2.0

你可以使用这个修饰符传入你需要忽略的区域和边缘

.ignoresSafeArea(.container, edges: .top)

注意:这两个参数都是可选的

当您需要将键盘作为区域做出反应时,此修饰符非常有用。旧修饰符尚未弃用,您仍然可以将其用作主要方法:


SwiftUI 1.0

如果需要支持 ios 13,请使用此修饰符

.edgesIgnoringSafeArea(.top)

注意:

如果您希望忽略所有边,您可以为两个修饰符传递.all

【讨论】:

【参考方案3】:

默认情况下,SwiftUI 视图将大部分留在安全区域内。它将进入屏幕底部,但不会靠近设备顶部的任何凹槽。如果您希望您的视图真正全屏,那么您应该使用 edgesIgnoringSafeArea() 修饰符。

struct MyView : View 

    var body: some View 
         Text("Welcome to Swift UI")
        .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
        .edgesIgnoringSafeArea(.top)
     
    

【讨论】:

我已经尝试过了,它确实摆脱了安全区域,但触及了安全区域被忽略的空间。 NavigationBarTitle 也不会移动。需要的是一种简单地关闭安全区域的方法。

以上是关于如何在swiftUI中删除顶部安全区域的主要内容,如果未能解决你的问题,请参考以下文章

iOS SwiftUI:ScrollView 忽略顶部安全区域

如何在 SwiftUI 中删除“表单”的顶部空间?

如何在swiftUI中忽略具有线性渐变的背景的安全区域?

如何从 Mac OS 中的 SwiftUI 列表中删除底部/顶部项目填充

如何使 SwiftUI 列表行背景颜色扩展整个宽度,包括安全区域之外

如何使用 SwiftUI 将 Stacks 固定在顶部和底部