如何改变状态栏的颜色

原文链接:https://www.ioscreator.com/tutorials/change-color-status-bar-tutorial
作者:Arthur Knopper
原文日期:2016/12/29
译者:Crystal Sun

状态栏可以有两种外观:dark(黑色) 和 light(白色)。在本章教程中,将学习如何改变状态栏的外观。本节教程使用的是 Xcode 8.0 和 iOS 10。

打开 Xcode,创建一个 Single View Application。

Product Name 使用 IOS10StatusBarColorTutorial,填写自己的 Organization Name 和 Organization Identifier,Language 一栏选择 Swift,Devices 一栏选择 iPhone。

打开 Storyboard,选中 View,在 Attributes Inspetor 里将 Background Color 改成 Light Gray。运行工程,默认的状态栏颜色是黑色(dark)。

而我们想要实现的效果是白色的状态栏。打开 ViewController.swift 文件,添加下列代码:

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

上述代码将 UIStatusBarStyle 枚举项设为 lightContent。运行工程,这时状态栏的颜色变成了白色(light)。

接下来回到 Storyboard,选中 View Controller,在 Editor 菜单中选择 Embed in Navigation Controller。选中 Navigation Bar,在 Attribute Inspector 里将 Bar Tint color 设置为 red。storyboard 应该如下图所示。

运行工程,状态栏又变成了黑色,也就是默认状态。产生这个问题的原因是,iOS 请求的是 navigation controller 的状态栏风格,不是 navigation controller 所包含的 controller 的风格。

为了改变 Navigation controller 的风格(style),需要在 AppDelegate.swift 文件里如下修改代码:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
        
    UINavigationBar.appearance().barStyle = .blackOpaque
    return true
}

运行工程,这时状态栏的颜色变成了白色。

可以从 github 上下载 IOS10StatusBarColorTutorial 教程的源代码。

本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,224评论 4 61
  • 作者:Arthur Knopper,原文链接,原文日期:2016/12/29译者:Crystal Sun;校对:w...
    梁杰_numbbbbb阅读 3,465评论 0 0
  • GitHub地址:chameleon star: 12000+ Swift 3 To use the Swift ...
    独木舟的木阅读 12,600评论 0 8
  • 看了一部日剧,觉得女主很好看。然而周围的人不觉得。怀疑她们的审美。 小学妹造反了! 她们我:学姐,你是要升天么?(...
    忽尔今至阅读 1,176评论 0 0
  • 正念练习:正念说话 正念说话,是一种带着智慧的说话方式,重要的是留意我们说此话背后的意图。有时需要暂停,深深感受自...
    悠悠然a阅读 1,267评论 0 0