我的应用程序具有深色背景,但是在iOS
7中状态栏变为透明的。所以我看不到任何东西,只有角落的绿色电池指示灯。如何将状态栏文本颜色更改为白色,就像在主屏幕上一样?
将UIViewControllerBasedStatusBarAppearance
要YES
在文件的.plist。
在viewDidLoad
做一个[self setNeedsStatusBarAppearanceUpdate];
添加以下方法:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
注意
:这不适用于内部控制器UINavigationController
,请参阅下面的Tyson评论:)
Swift 3- 这将在内部工作控制器UINavigationController
。将此代码添加到您的控制器中。
// Preferred status bar style lightContent to use on dark background.
// Swift 3
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
Swift 5和SwiftUI
对于SwiftUI,创建一个新的swift文件,名为 HostingController.swift
import Foundation
import UIKit
import SwiftUI
class HostingController: UIHostingController<ContentView> {
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
然后在 SceneDelegate.swift
window.rootViewController = UIHostingController(rootView: ContentView())
至
window.rootViewController = HostingController(rootView: ContentView())
我对这一切都不熟悉。我到处寻找这个小问题的解决办法。有没有办法改变状态栏的颜色?当我使用a色的时候,我也喜欢a色。蓝色我可以看到状态栏中的文本质量不好。 谢谢
第8条。1(xcode 6.1)我使用下面的方法来更改状态栏文本的颜色。 不调用链接preferredStatusBarStyle 但这对我不起作用。任何人都知道如何更改与uinavigationcontroller相关的状态栏颜色。
随着13iOS状态的到来,酒吧的视图不再通过槽访问: 由于: 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因是:“UIApplication上调用了-statusBar或-statusBarWindow的应用程序:由于不再有状态栏或状态栏窗口,必须更改此代码。”。“请使用“场景”窗口上的状态栏。” 但是不清楚它应该如何用于更改颜色,因为似乎
对于ios 13,我无法设置状态栏的文本颜色。如何查看statusBarManager?如何仅更改文本颜色? 由于: 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因是:“UIApplication上调用了-statusBar或-statusBarWindow的应用程序:由于不再有状态栏或状态栏窗口,必须更改此代码。”。“请使用“场景”窗口上
因此,我在这里读了几篇关于更改状态栏文本颜色的帖子,但都没用。所以我最初的问题是,状态栏现在在iOS7中是透明的,我希望它是带黑色文本的白色。所以我把它添加到我的viewcontroller中。 好的,现在状态是黑对黑,不能阅读文本,但至少它不是透明的。所以现在我做了下面的事情。 进入plist并添加了这个 然后我将此添加到我的应用程序委托 现在我有一个状态栏是白色的,但是文本是白色的,所以你看不
我当前的应用程序运行在iOS 5和iOS 6上。 导航栏的颜色为橙色,状态栏的背景颜色为黑色,文本颜色为白色。但是,当我在iOS 7上运行相同的应用程序时,我观察到状态栏看起来是透明的,与导航栏的背景颜色相同,并且状态栏文本颜色为黑色。 因此,我无法区分状态栏和导航栏。 如何使状态栏与iOS 5和iOS 6中的状态栏相同,即黑色背景色和白色文本色?如何以编程方式执行此操作?