我的应用程序有一个深色背景,但在 iOS 7 中状态栏变得透明。所以我在那里看不到任何东西,只能看到角落里的绿色电池指示灯。如何将状态栏文本颜色更改为白色,就像在主屏幕上一样?
最佳答案
在 .plist 文件中将
UIViewControllerBasedStatusBarAppearance
设置为YES
。在
viewDidLoad
中执行[self setNeedsStatusBarAppearanceUpdate];
添加如下方法:
- (UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleLightContent; }
注意:这不适用于 UINavigationController
内的 Controller ,请参阅 Tyson's comment below :)
Swift 3 - 这将在 UINavigationController
内运行 Controller 。在您的 Controller 中添加此代码。
// Preferred status bar style lightContent to use on dark background.
// Swift 3
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
Swift 5 和 SwiftUI
为 SwiftUI 创建一个名为 HostingController.swift
的新 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())
关于ios - 如何在 iOS 中更改状态栏文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17678881/