我正在使用SwiftUI开发屏幕,希望将我的视图显示在屏幕的顶部安全区域,是否有任何方法可以在SwiftUI中实现这一点?
.edgesIgnoringSafeArea(.top)
如果您想忽略所有安全区域插图,可以传递 .all
您可以使用此修改器传递要忽略的区域和边缘。
.ignoresSafeArea(.container, edges: .top)
注意: 两个参数都是可选的
当你需要将键盘视为区域并对其做出反应时,此修改器非常有用。旧修改器尚未过时,您仍然可以使用它作为主要方法:
如果需要支持iOS 13,请使用此修改器。
.edgesIgnoringSafeArea(.top)
如果您想忽略所有边缘,请传递.all
以用于两个修饰符。
/**
This extension is needed because of deprecating edgesignoringsafearea for iOS 13.0–15.2
https://developer.apple.com/documentation/swiftui/menu/edgesignoringsafearea(_:)
*/
public extension View {
@ViewBuilder
func expandViewOutOfSafeArea(_ edges: Edge.Set = .all) -> some View {
if #available(iOS 14, *) {
self.ignoresSafeArea(edges: edges)
} else {
self.edgesIgnoringSafeArea(edges) // deprecated for iOS 13.0–15.2, look upper
}
}
}
如何使用:
MyView()
.expandViewOutOfSafeArea()
默认情况下,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)
}
}