2

我想将状态栏文本颜色更改为客户颜色,如附加的屏幕截图。

我用它来使它变得轻巧-

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

但文字颜色没有改变。任何人都可以帮忙吗?

状态栏截图

4

4 回答 4

6

这是关于状态栏更改的Apple 指南/说明。状态栏中只允许使用深色和浅色(白色和黑色)。它不允许在状态栏中设置颜色(粉红色,如图所示)。

这是 - 如何更改状态栏样式:

如果你想设置状态栏样式,应用程序级别然后UIViewControllerBasedStatusBarAppearanceNO你的`.plist'文件中设置。

如果您想在视图控制器级别设置状态栏样式,请按照以下步骤操作:

  1. 如果您只需要在 UIViewController 级别设置状态栏样式,请在文件中设置UIViewControllerBasedStatusBarAppearanceto 。YES.plist
  2. 在 viewDidLoad 添加函数 -setNeedsStatusBarAppearanceUpdate

  3. 覆盖视图控制器中的 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
    }

}



这是结果:

在此处输入图像描述

于 2017-03-27T10:57:28.733 回答
4

在文件中设置为UIViewControllerBasedStatusBarAppearanceYES.plist

viewDidLoad方法中,做一个

[self setNeedsStatusBarAppearanceUpdate];

添加以下方法:

- (UIStatusBarStyle)preferredStatusBarStyle
{ 
    return UIStatusBarStyleLightContent; 
}
于 2017-03-27T10:55:39.043 回答
1

如果您的应用程序将支持在您的应用程序的Info.plist 中,将“查看基于控制器的状态栏外观”设置为NO

appDelegate.swiftdidFinishLaunchingWithOptions函数里面,添加:

UIApplication.shared.statusBarStyle = .lightContent

最佳答案在这里描述:如何在 Swift 3 中设置状态栏样式

于 2019-06-10T06:51:47.283 回答
0

状态栏的文本颜色可以是白色或黑色。

于 2017-03-27T10:50:44.767 回答