如何更改状态栏文本颜色。附上截图
How can I change my status bar text color. Screenshot attached
我想将状态栏文本颜色更改为客户颜色,如所附截图。
我用它来使内容变得轻盈 -
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
但是文字颜色没有改变。有人可以帮忙吗?
状态栏的文本颜色可以是白色或黑色。
在 .plist
文件中将 UIViewControllerBasedStatusBarAppearance
设置为 YES
。
在viewDidLoad
方法中,做一个
[self setNeedsStatusBarAppearanceUpdate];
添加以下方法:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
这里是关于状态栏变化的Apple Guidelines/Instruction。状态栏中只允许 Dark & light (while & black)。它不允许在状态栏中设置颜色(粉红色,如您的图片所示)。
这是-如何更改状态栏样式:
如果你想设置状态栏样式,应用级别然后在你的`.plist'文件中设置UIViewControllerBasedStatusBarAppearance
到NO
。
如果您想在视图控制器级别设置状态栏样式,请按照以下步骤操作:
- 如果您只需要在 UIViewController 级别设置状态栏样式,请在
.plist
文件中将 UIViewControllerBasedStatusBarAppearance
设置为 YES
。
在viewDidLoad中添加函数——setNeedsStatusBarAppearanceUpdate
在您的视图控制器中覆盖 preferredStatusBarStyle。
-
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
根据状态栏样式设置级别设置.plist的值。
您可以在应用程序启动期间或视图控制器的 viewDidLoad 期间为状态栏设置背景颜色。
extension UIApplication {
var statusBarView: UIView? {
return value(forKey: "statusBar") as? UIView
}
}
// Set upon application launch, if you've application based status bar
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
return true
}
}
or
// Set it from your view controller if you've view controller based statusbar
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
}
}
这是结果:
如果您的应用程序将支持在您的应用程序的 Info.plist 中,将 "View controller-based status bar appearance" 设置为 NO
.
在appDelegate.swift中,在didFinishLaunchingWithOptions
函数内,添加:
UIApplication.shared.statusBarStyle = .lightContent
此处描述了最佳答案:
我想将状态栏文本颜色更改为客户颜色,如所附截图。
我用它来使内容变得轻盈 -
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
但是文字颜色没有改变。有人可以帮忙吗?
状态栏的文本颜色可以是白色或黑色。
在 .plist
文件中将 UIViewControllerBasedStatusBarAppearance
设置为 YES
。
在viewDidLoad
方法中,做一个
[self setNeedsStatusBarAppearanceUpdate];
添加以下方法:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
这里是关于状态栏变化的Apple Guidelines/Instruction。状态栏中只允许 Dark & light (while & black)。它不允许在状态栏中设置颜色(粉红色,如您的图片所示)。
这是-如何更改状态栏样式:
如果你想设置状态栏样式,应用级别然后在你的`.plist'文件中设置UIViewControllerBasedStatusBarAppearance
到NO
。
如果您想在视图控制器级别设置状态栏样式,请按照以下步骤操作:
- 如果您只需要在 UIViewController 级别设置状态栏样式,请在
.plist
文件中将UIViewControllerBasedStatusBarAppearance
设置为YES
。 在viewDidLoad中添加函数——
setNeedsStatusBarAppearanceUpdate
在您的视图控制器中覆盖 preferredStatusBarStyle。
-
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
根据状态栏样式设置级别设置.plist的值。
您可以在应用程序启动期间或视图控制器的 viewDidLoad 期间为状态栏设置背景颜色。
extension UIApplication {
var statusBarView: UIView? {
return value(forKey: "statusBar") as? UIView
}
}
// Set upon application launch, if you've application based status bar
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
return true
}
}
or
// Set it from your view controller if you've view controller based statusbar
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
}
}
这是结果:
如果您的应用程序将支持在您的应用程序的 Info.plist 中,将 "View controller-based status bar appearance" 设置为 NO
.
在appDelegate.swift中,在didFinishLaunchingWithOptions
函数内,添加:
UIApplication.shared.statusBarStyle = .lightContent
此处描述了最佳答案: