SwiftUI - TabView 与 NavigationView 生成灰色区域

Dyn*_*erg 5 user-interface xcode swift ios13 swiftui

当我将isTranslucent与NavigationView结合设置为false时,我的选项卡式视图出现一些问题。

有谁知道如何解决这一问题?问题如附图所示。

我需要将半透明设置为 false,否则我无法获得深色。

在此输入图像描述

Kug*_*men 7

您可以设置背景颜色。不要将 isTranslucent 设置为 false,否则它会创建您提到的这些人工制品。

UITabBar.appearance().backgroundColor = .black
UINavigationBar.appearance().backgroundColor = .black
Run Code Online (Sandbox Code Playgroud)

它变得更暗。但它并不是完全不透明的。

编辑:刚刚观看了 iOS 13 的 UI 现代化 这是执行此操作的方法:

TabView 和 NavigationView 实际上是旧版 UITabBarController 和 UINavigationController 的 UIHostedController:

let appearance = UITabBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.titleTextAttributes = [.foregroundColor: UIColor.white]
appearance.largeTitleTextAttributes = [.foregroundColor: UIColor  .white]
Run Code Online (Sandbox Code Playgroud)

然后在各种类型的外观上设置外观。

tabBar.standardAppearance = appearance
Run Code Online (Sandbox Code Playgroud)

第二次编辑:

let appearance = UITabBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.titleTextAttributes = [.foregroundColor: UIColor.white]
appearance.largeTitleTextAttributes = [.foregroundColor: UIColor  .white]
Run Code Online (Sandbox Code Playgroud)

应该有一种更简洁的方式来访问 tabBar 和 navBar。

参考:https ://developer.apple.com/videos/play/wwdc2019/224/