ios - SwiftUI 标签栏顶部的空白标签栏高度区域
问题描述
我想插入一个新选项卡,它是一个 SwiftUI 视图UIHostingController
,UITabBarController
如下图所示:
观点很简单,
内容视图.swift
struct ContentView: View {
var body: some View {
ZStack {
Color(.red).opacity(0.2).edgesIgnoringSafeArea(.all)
NavigationView {
Text("Hello")
}
}
}
在AppDelegate.swift(禁用场景)中,我得到viewControllers
并插入如下:
let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(identifier: "TabBarController") as! UITabBarController
let view = ContentView()
let viewController = UIHostingController(rootView: view)
controller.viewControllers?.insert(viewController, at: 0)
let item = controller.tabBar.items![0]
item.title = "Tab"
window.rootViewController = controller
self.window = window
window.makeKeyAndVisible()
结果如上图,没问题。但是当我把它Text
放进去时NavigationView
:
var body: some View {
ZStack {
Color(.red).opacity(0.2).edgesIgnoringSafeArea(.all)
NavigationView {
Text("Hello")
}
}
}
那么结果是:
有一个灰色的空白栏,看起来与那里的标签栏相同,如何删除它?
我尝试通过以下方式隐藏标签栏:
tabBarController.tabBar.isHidden = true
是的,它已经消失了,但我不想隐藏 tabBar。任何帮助,谢谢!
解决方案
只需将 TabBar 的半透明设置为 true。
在故事板中:
设置复选标记TabBar -> Style -> Translucent
或者在代码中
tabBar.isTranslucent = true