我有一个UITabBarController
,其中有5个以上的UIViewControllers
。我已将info.plist
中的值设置为基于ViewController
的状态栏外观为YES
。
所有UIViewController都有值
UIApplication.shared.statusBarUIView?.backgroundColor = customColor
self.setNeedsStatusBarAppearanceUpdate()
在viewDidLoad中的,其中customColor是深蓝色。我还覆盖了preferredStatusBarStyle变量以简化内容。
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
所有UIViewControllers都显示lightContent状态栏。我在MoreTabBarController类中尝试了相同的方法,但是它不起作用。我假设原因是因为它不是UIViewController而是UITabBarController。
如何在MoreTabBarController中将状态栏颜色更改为浅色内容?
答案 0 :(得分:0)
使用UIApplication.shared.statusBarStyle = .lightContent
在didFinishLaunchingWithOptions中,然后
使用View controller-based status bar appearance
键并在.info plist中为其布尔值设置No。
将状态栏颜色更改为浅色内容。
答案 1 :(得分:0)
打开项目设置选项,您可以更改状态栏的样式:
接下来,返回情节提要,选择ViewController
,然后在编辑器菜单中选择Embedin NavigationController
。选择导航栏,然后在“属性检查器”中将“栏色调”颜色设置为红色。
生成并运行项目,状态栏的内容再次变暗,这是默认设置。原因是,iOS要求导航控制器状态栏的样式,而不是所包含的ViewController
。
要更改应用内所有导航控制器的样式,请在AppDelegate.swift
文件中更改以下方法。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
UINavigationBar.appearance().barStyle = .blackOpaque
return true
}