我有这个代码,我试图使webview的高度是一个全屏
struct ContentView: View {
@State private var showWebView = false
private let urlString: String = "https://example"
var body: some View {
VStack(spacing: 40) {
// Normal WebView
WebView(url: URL(string: urlString)!).frame(height: 900)
.cornerRadius(10)
.shadow(color: .black.opacity(0.3), radius: 20.0, x: 5, y: 5)
}
}
}
我已经尝试添加到高度:
height: self.view.frame.height
但是不工作
您应该将.ignoresSafeArea()
修饰符添加到您的WebView
:
struct ContentView: View {
@State private var showWebView = false
private let urlString: String = "https://example"
var body: some View {
VStack(spacing: 40) {
WebView(url: URL(string: urlString)!)
.cornerRadius(10)
.shadow(color: .black.opacity(0.3), radius: 20.0, x: 5, y: 5)
.ignoresSafeArea()
}
}
}
你也可以删除corenerRadius()
修饰符,因为在这种情况下,它是不必要的。
要使用SwiftUI使web视图全屏,您可以在WebView对象上使用.edgesIgnoringSafeArea(.all)
修饰符,如下所示:
WebView(url: url).edgesIgnoringSafeArea(.all)
这将使web视图占据整个屏幕,忽略安全区域。安全区域是屏幕上没有被设备边框或其他设备特定元素遮挡的部分。忽略安全区域将确保web视图占用屏幕上的最大空间。
你也可以使用.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
修饰符来达到同样的效果,像这样:
WebView(url: URL(string: urlString)!)
.frame(
minWidth: 0,
maxWidth: .infinity,
minHeight: 0,
maxHeight: .infinity
)
这将使网页视图占据整个屏幕,而不管设备的安全区域。