美文网首页
如何改变状态栏的颜色

如何改变状态栏的颜色

作者: sing_crystal | 来源:发表于2017-04-26 17:51 被阅读264次

原文链接: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 知识小集(Status Bar变换)

    背景 iOS 中经常会有需要在某个界面改变状态栏颜色或者某个界面隐藏状态栏的需求。而改变状态栏颜色和控制状态栏显示...

  • iOS 状态栏隐藏+变色

    改变状态栏颜色 iOS手机状态栏默认是黑色,在某些情况下需要改变状态栏的颜色在info.plist文件中添加:Vi...

  • 直播项目笔记(一)

    颜色封装 + ClOPageView + 瀑布流 搭建主题框架 导航栏布局 改变导航栏的颜色 改变状态栏的颜色 设...

  • android沉浸式

    一、内容概述: 1、如何修改状态栏颜色。2、如何修改状态栏文字颜色。3、如何不被虚拟键隐藏,或隐藏虚拟键。4、如何...

  • 如何设置状态栏字体颜色

    改变状态栏样式,只对iOS7及以上系统有效。其实也就是改变状态栏的字体颜色,默认是黑色,可以根据导航栏背景颜色设置...

  • 20-状态栏

    1. 改变状态栏文字颜色(黑色变白色) 方法: 2.隐藏状态栏

  • 如何改变状态栏的颜色

    原文链接:https://www.ioscreator.com/tutorials/change-color-st...

  • 设置状态栏样式

    全局 如果想改变所有控制器的状态栏样式,可以借助Info.plist实现 状态栏默认颜色是黑色文本 改变状态栏为白...

  • iOS改变状态栏文字颜色

    iOS改变状态栏文字颜色 UINavigationController不会将 preferredStatusBar...

  • Android沉浸式(透明)状态栏适配

    在Android系统4.4以前,状态栏的背景色和字体颜色都是不能改变的。但是4.4以后Google增加了改变状态栏...

网友评论

      本文标题:如何改变状态栏的颜色

      本文链接:https://www.haomeiwen.com/subject/vyjdattx.html