swift - SwiftUI - 如何在选项卡式视图中获得透明状态栏?
问题描述
我的应用程序第一个根视图是带有两个选项卡的选项卡式视图。第二个选项卡是带有表单的导航视图。设置可以总结如下:
struct ContentView: View {
var body: some View {
TabView {
// First view
// ...
NavigationView {
Form {
// Form details
// ...
}
}
.tabItem {
// Text and image for the tab view item
}
}
}
}
问题是表单视图的背景不是白色的,它有轻微的对比(对于分组列表),这与顶部的状态栏产生了可耻的分离:
此行为在其他应用程序(例如 Apple 应用程序)中不存在。例如,Pages 应用程序的主视图是一个选项卡视图,状态栏保持透明并且与顶部栏标题的颜色相同。
我想要与 iPhone 设置应用程序相同的行为,标题颜色与状态栏视图匹配。
这里的问题似乎是控制状态栏外观的选项卡视图,如果我删除它一切正常。
有没有办法在选项卡视图中获得这种行为?
解决方案
您可以将您的包装TabView
放入ZStack
并设置.edgesIgnoringSafeArea(.top)
为您的堆栈
var body: some View {
ZStack {
TabView {
Form {
Text("OK")
}
}.tabItem {
Text("Show")
}
}.edgesIgnoringSafeArea(.top)
}
推荐阅读
- php - PHP单元测试recaptcha v2
- asp.net-core - 无法在 .net-core 2 上运行简单程序。出现以下错误
- angular - ngx bootstrap 通过路由打开模式
- ssis - 支持 Redshift DNS 密码 SSIS 配置文件
- c# - 如何在 C# 中使用正则表达式从字符串中删除所有不需要的字符?
- bash - gunzip file1.gz file2.gz 比遍历文件和对每个文件进行gunziping更快吗
- php - 如何在php中为SQL查询添加标题和边框
- java - 应拆箱“字符串”原始类型,但返回 null
- html - 嵌套表格 - 单元格的宽度不正确
- python-3.x - 在 buildroot 映像中添加 python_opencv