如何更改状态栏背景的颜色?

时间:2019-12-06 17:06:31

标签: ios swift xcode

当我在文本上向下滚动Status bar时,它似乎很可怕

enter image description here

我可以将status bar的背景设为灰色还是深色,将文本设为status bar的浅色?

2 个答案:

答案 0 :(得分:1)

可以将status bar的样式更改为带有白色内容的status bar。转到ViewController.swift文件并添加以下代码行。

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}
  

枚举UIStatusBarStyle:Int

  • 案例default :深色状态栏,意在亮起使用 背景。
  • case lightContent :浅状态栏,旨在在黑暗中使用 背景。
  • 案例darkContent :深色状态栏,意在亮起使用 背景。

如果要一起更改状态栏的背景色,可以执行以下操作:

    if #available(iOS 13.0, *) {
        let statusBarView = UIView(frame: view.window?.windowScene?.statusBarManager?.statusBarFrame ?? CGRect.zero)
        statusBarView.backgroundColor = backgroundColor
        view.addSubview(statusBarView)
    } else {
        // Fallback on earlier versions
        let statusBarView = UIView(frame: UIApplication.shared.statusBarFrame)
        statusBarView.backgroundColor = backgroundColor
        view.addSubview(statusBarView)
    }

答案 1 :(得分:0)

添加您的应用程序删除此代码

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    UINavigationBar.appearance().barStyle = .blackOpaque
    return true
}

或在您的信息列表中使用

info plist

或在特定视图下

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(true)

    navigationController?.navigationBar.barStyle = .blackOpaque
}

用于视图控制器

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}