SwiftUI标签栏顶部的空白标签栏高度区域

dsekswqp  于 2023-09-30  发布在  Swift
关注(0)|答案(2)|浏览(98)

我想插入一个新的标签,这是一个SwiftUI视图由UIHostingControllerUITabBarController,像这样的图像:

观点很简单

ContentView.swift

struct ContentView: View {
       var body: some View {
            ZStack {
                Color(.red).opacity(0.2).edgesIgnoringSafeArea(.all)
                NavigationView {
                    Text("Hello")
                }
            }
}

AppDelegate.swift(disabled Scene)中,我得到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。任何帮助,谢谢!

vngu2lb8

vngu2lb81#

只需将TabBar的半透明设置为true。

在故事板中:

设置复选标记 TabBar -> Style -> Translucent

或代码

tabBar.isTranslucent = true
np8igboo

np8igboo2#

最后,我删除了故事板中的UITabBarController并重新添加了它。旧的是由旧的Xcode版本添加的。我比较了两个UITabBarController,没有看到接口构建器的差异。

相关问题