我想将状态栏文字颜色更改为客户颜色,如附加截图。
我用它来制作轻量级内容 -
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
但文字颜色不变。有人可以帮忙吗?
答案 0 :(得分:4)
将UIViewControllerBasedStatusBarAppearance
设置为YES
文件中的.plist
。
在viewDidLoad
方法中,执行
[self setNeedsStatusBarAppearanceUpdate];
添加以下方法:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
答案 1 :(得分:2)
以下是关于状态栏更改的Apple Guidelines/Instruction。只有黑暗&状态栏中允许亮(同时为黑色)。它不允许在状态栏中设置颜色(粉红色,如图中所示)。
以下是 - 如何更改状态栏样式:
如果要设置状态栏样式,应用程序级别,请在“.plist”文件中将UIViewControllerBasedStatusBarAppearance
设置为NO
。
如果您要在视图控制器级别设置状态栏样式,请按照以下步骤操作:
UIViewControllerBasedStatusBarAppearance
文件中将YES
设置为.plist
。 在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
}
}
结果如下:
答案 2 :(得分:0)
状态栏的文字颜色可以是白色或黑色。
答案 3 :(得分:0)
如果您的应用程序将支持在应用程序的 Info.plist 中,将“基于控制器的状态栏外观” 设置为NO
。
在 appDelegate.swift 中的didFinishLaunchingWithOptions
函数中,添加:
UIApplication.shared.statusBarStyle = .lightContent
此处描述了最佳答案:How to set Status Bar Style in Swift 3