有没有一种方法可以指定用于在SwiftUI中显示工作表的视图的背景颜色?我知道我可以在视图中设置.background
,但是在iPhone X上不会影响安全区域。我也可以使用.edgesIgnoringSafeArea
来填充该区域,但我不希望对此感到困惑。
答案 0 :(得分:2)
最后,您需要处理edgesIgnoringSafeArea
,因为您需要超出安全区域(必须在UIKit中执行相同的操作)。重要的是,您只忽略背景的安全区域。因此,就SwiftUI而言,您只需要将edgesIgnoringSafeArea
应用于传递给background
的视图:
struct ContentView: View {
var body: some View {
VStack {
Text("hey there")
Text("Another line")
}.background(Color.blue.edgesIgnoringSafeArea(.all))
}
}
但是,这要求您在background
上使用的视图已经请求了所有可用空间(在上面的示例代码中不是这种情况),因为background仅绘制视图的背景,而不会自行填充屏幕。如果您不是这种情况,则需要使用your answer中所示的ZStack
。
答案 1 :(得分:0)
更多地迷上了这个并且着手解决这个问题
struct BackgroundFillView<Content: View>: View {
let backgroundColor: Color
let content: () -> Content
var body: some View {
ZStack {
self.backgroundColor.edgesIgnoringSafeArea(.all)
self.content()
}
}
}
答案 2 :(得分:0)
我通过 Introspect 找到了解决此问题的方法,您可以在 https://github.com/siteline/SwiftUI-Introspect 上找到它,然后在您的 SwiftUI 视图中执行此操作:
npm install
react-native start
react-native run-android