ios - 状态栏颜色 iOS

标签 ios swift statusbar uistatusbar

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

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

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

最佳答案

这里是 Apple Guidelines/Instruction关于状态栏的变化。状态栏中只允许 Dark & light (while & black)。

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

如果你想设置状态栏样式,那么在你的 `.plist' 文件中将 UIViewControllerBasedStatusBarAppearance 设置为 NO

如果您想设置状态栏样式,请在 View Controller 级别执行以下步骤:

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

  3. 在您的 View Controller 中覆盖 preferredStatusBarStyle。

-

override func viewDidLoad() {
    super.viewDidLoad()
    self.setNeedsStatusBarAppearanceUpdate()
}

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

根据状态栏样式设置级别设置.plist 的值。 enter image description here


您可以在应用程序启动期间或 View Controller 的 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
    }

}



这是结果:

enter image description here

关于ios - 状态栏颜色 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42034003/

相关文章:

ios - Objective-C 中 UILabel 的类型转换

ios - 如何更改 "back"栏按钮项的标题?

iphone - 如何在 Spotify iOS 应用程序中模仿可调整大小的 StatusBar

ios - 如何同时滑入/滑出状态栏和导航栏?

objective-c - kAudioUnitSubType_NBandEQ 是如何工作的?或者使用 DSP 公式与 Novocaine 进行均衡?

ios - 核心数据 : How to fault freshly created managed objects

ios - 展开 segue 和 dealloc

swift - 重新加载 ViewController 内的 tableview 获取 ' Fatal error: index out of range' ,位于索引路径的 cellforRow 中

ios - 从 Swift 函数中的异步调用返回数据

android - 在透明背景上的状态栏上永久显示扩展字符串(天气温度),所有字符大小合适且可见