【问题标题】:Status bar color iOS状态栏颜色 iOS
【发布时间】:2017-02-03 22:28:17
【问题描述】:

不知何故,无论我遇到的查询或答案数量如何,我都找不到一个可以说出如何使用 Swift 3 在 iOS 中设置状态栏颜色的人。我已经看到了您添加的所有建议:

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

但问题是,我不想要一个透明的状态栏。我想要状态栏颜色的特定十六进制颜色。

【问题讨论】:

  • “我不想要一个透明的状态栏” 运气不好。它透明的(在最新版本的 iOS 中)。一旦你接受了现实,你就可以开始接受变通方法了。

标签: ios swift statusbar uistatusbar


【解决方案1】:

这里是Apple Guidelines/Instruction,关于状态栏的变化。状态栏中只允许使用深色和浅色(白色和黑色)。

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

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

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

  1. 如果您只需要在 UIViewController 级别设置状态栏样式,请在 .plist 文件中将 UIViewControllerBasedStatusBarAppearance 设置为 YES
  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
    }

}



结果如下:

【讨论】:

    【解决方案2】:

    没有设置状态栏内容颜色的 API;如果你想要一个,你应该提交一个增强请求here。如果您想更改状态栏后面的背景颜色,请将具有该背景颜色的视图放在应用窗口的顶部。

    【讨论】:

    • 赞成在状态栏下方放置彩色视图。可悲的是,这是我的做法。
    猜你喜欢
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 2012-08-22
    • 2016-11-04
    • 2018-08-27
    • 1970-01-01
    相关资源
    最近更新 更多