关于ios7:如何在iOS中更改状态栏文本颜色

How to change Status Bar text color in iOS

我的应用程序背景很暗,但在iOS 7中,状态栏变得透明。所以我看不到任何东西,只有角落里的绿色电池指示灯。如何将状态栏文本颜色更改为白色,就像在主屏幕上一样?


  • 在.plist文件中将UIViewControllerBasedStatusBarAppearance设置为YES

  • viewDidLoad中,执行[self setNeedsStatusBarAppearanceUpdate];

  • 添加以下方法:

    1
    2
    3
    4
    - (UIStatusBarStyle)preferredStatusBarStyle
    {
        return UIStatusBarStyleLightContent;
    }
  • 注:这不适用于UINavigationController内的控制器,请参见下面的泰森评论:)

    Swift 3-这将在UINavigationController内运行控制器。在控制器中添加此代码。

    1
    2
    3
    4
    5
    // Preferred status bar style lightContent to use on dark background.
    // Swift 3
    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }


    或者,您可以选择退出基于视图控制器的状态栏外观:

  • 在您的Info.plist中,将View controller-based status bar appearance设置为NO
  • 呼叫[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
  • 注意:此方法在IOS9中已被弃用。在uiviewcontroller上使用preferredStatusBarStyle。(参见苹果开发者库)


    您可以在不编写任何代码行的情况下执行此操作!< BR>执行以下操作,使整个应用程序的状态栏文本为白色

    在您的项目plist文件上:

    • 状态栏样式:Transparent black style (alpha of 0.5)
    • 基于视图控制器的状态栏外观:NO
    • 状态栏最初隐藏:NO


    注:大多数赞成的答案不适用于iOS 7/8

    在info.plist中,将"基于视图控制器的状态栏外观"设置为"否"

    在AppDelegate中添加

    1
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

    1
    2
    3
    4
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
       ......
       ...
    }

    此解决方案适用于iOS 7/8


    对我来说,使用其他答案中的所有内容(以及其他来源/文档中的所有内容)并没有发生任何问题。帮助的是在XIB中将导航栏样式设置为"黑色"。这使得文本变为白色,根本没有任何代码。

    Enter image description here


    这些都不适合我,所以这里有一个可行的解决方案…

    Info.plist中,添加一行:

    UIViewControllerBasedStatusBarAppearance,设置值NO

    然后在didFinishLaunchingWithOptions的appdelegate中,添加以下行:

    1
    2
    [application setStatusBarHidden:NO];
    [application setStatusBarStyle:UIStatusBarStyleLightContent];


    你不需要为此做任何代码

    您需要在info.plist中添加"基于视图控制器的状态栏外观"键,如下所示:enter image description here

    &将其值类型设置为"布尔值"并将其值设置为"否"。然后单击"项目设置",然后单击"常规"选项卡&;在"部署信息"下,将首选状态栏样式设置为.light,如下所示:

    enter image description here

    就是这样。


    只需以下两步:

    步骤1:

    project target的"信息"选项卡下,添加行:

    UIViewControllerBasedStatusBarAppearance,设定值NO

    步骤2:

    在项目AppDelegate.m中:

    1
    2
    3
    4
    5
    6
    - (BOOL)application:(UIApplication *)application
            didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
        …
        [application setStatusBarStyle:UIStatusBarStyleLightContent];
        …
    }


    这在2013年9月18日发布的golden master ios 7和xcode 5 gm seed和ios7 sdk中工作(至少隐藏导航控制器):

  • 将中的the UIViewControllerBasedStatusBarAppearance设置为NOInfo.plist

  • viewDidLoad方法中或任何地方,您想在哪里更改状态栏样式:[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];


  • 如果uiviewController位于uinavigationController内,则必须设置条形图样式:

    1
    -[UINavigationBar setBarStyle:UIBarStyleBlack]

    原始答案在这里

    https://devforums.apple.com/message/844264 844264


    如果您有通过Interface Builder创建的嵌入式导航控制器,请确保在管理导航控制器的类中设置以下内容:

    1
    2
    3
    -(UIStatusBarStyle)preferredStatusBarStyle{
        return UIStatusBarStyleLightContent;
    }

    这就是你所需要的。


    我在一个Swift项目中使用Xcode6测试版5,用于iOS 7应用程序。

    以下是我所做的,它起作用:

    幻灯片:

    Enter image description here


    在appdelegate.m中,添加以下内容。

    1
    2
    3
    4
    5
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

    }

    在plist文件中,将"基于视图控制器的状态栏外观"设置为"否"。


    仅在AppDelegate中

    1
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];


  • Project->Target

  • 然后将Status Bar Style设置为Light。它使启动屏幕上的状态栏变为白色。Project Setting

  • 然后将View controller-based status bar appearance设为Info.plist中的NO


  • 好吧,这对我来说真的是小菜一碟。

    去你的应用程序的Info.plist

  • View controller-based status bar appearance设为NO
  • Status bar style设置为UIStatusBarStyleLightContent
  • 然后转到应用程序的代理并粘贴以下代码,在其中设置Windows的rootviewcontroller。

    1
    2
    3
    4
    5
    6
    7
    8
    #define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
    {
        UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, 0,320, 20)];
        view.backgroundColor=[UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:1.0];
        [self.window.rootViewController.view addSubview:view];
    }

    答对了。这对我很有效。


    Change in info PLIST在Swift 3中,只需两步就可以轻松完成。转到info.plist,将键View controller-based status bar appearance更改为"否"。然后在AppDelegate中,只需在didFinishLaunchWithOptions方法中添加此行

    1
    2
    3
    4
    5
      func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
            // Override point for customization after application launch.
            UIApplication.shared.statusBarStyle = .lightContent
            return true
        }

    IOS9中已弃用此属性,现在应该在rootviewController中重写此属性。

    在iOS 9中不推荐这样做,应该在rootviewcontroller上这样做。

    1
    2
    3
    override var preferredStatusBarStyle: UIStatusBarStyle {
            return .lightContent
     }


    iOS 7允许单个视图控制器确定状态栏的外观,如Apple Developer文档所述:

    iOS 7 gives view controllers the ability to adjust the style of the status bar while the app is running. A good way to change the status bar style dynamically is to implement preferredStatusBarStyle and—within an animation block—update the status bar appearance and call setNeedsStatusBarAppearanceUpdate.

    全局设置状态栏外观是一个两步过程。

    首先,您需要告诉iOS您不想按视图设置状态栏外观。

    然后您需要负责并实际设置新的全局状态栏样式。

    要禁用"按视图查看"状态栏控件,需要在Info.plist中设置View controller-based status bar appearance属性。

    打开"项目导航器",选择iOS应用程序的项目,然后选择"信息"选项卡。

    将鼠标悬停在一行上,然后单击出现的加号,将新属性添加到您的.plist

    在键字段中输入View controller-based status bar appearance,然后确保类型字段设置为Boolean。最后,在值字段中输入NO

    要为状态栏设置全局样式,请在"信息"选项卡下添加另一个属性,其键为Status bar style、类型为String、值为Opaque black style

    下面是一篇博文,其中包含了更多的细节和一些示例代码:

    http://codebleep.com/setting-the-status-bar-text-color-in-ios-7/


    更新了xcode gm seed的答案:

  • Info.plist中,将View controller-based status bar appearance设为NO

  • 在项目中,设置:

    Enter image description here

  • 在ViewDidLoad:

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];


  • 不需要做额外的工作,只需在视图控制器中编写此代码,并使状态栏颜色为白色。

    1
    - (UIStatusBarStyle)preferredStatusBarStyle{return UIStatusBarStyleLightContent;}


    我认为所有的答案并不能真正指出问题所在,因为它们都适用于特定的场景。但如果您需要涵盖所有案例,请遵循以下要点:

    根据您需要的状态栏灯光样式,您应该始终记住以下三点:

    1)如果您需要启动屏幕或其他无法控制的地方的状态栏(不是在视图控制器中,而是一些系统控制的元素/时刻,如启动屏幕)转到项目设置Project settings

    2)如果导航控制器内有控制器您可以在Interface Builder中更改它,如下所示:

    a)选择导航控制器的导航栏Select the navigation bar of your navigation controller

    b)然后将导航栏的样式设置为"黑色",因为这意味着您的状态栏下将有一个"黑色"->深色背景,因此它将状态栏设置为白色。

    enter image description here

    或者用下面的代码来做

    1
    navigationController?.navigationBar.barStyle = UIBarStyle.Black

    3)如果只有控制器需要有它自己的状态栏样式,并且它没有作为uinavigationcontroller嵌入到某些容器结构中

    在代码中为控制器设置状态栏样式:

    Setting the status bar style in code


    简单呼叫

    1
    [[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];

    1
    2
    3
    -(BOOL)application:(UIApplication *)application
               didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    }

    我的AppDelegate方法在iOS7中对我很有用。


    这在iOS 7用户界面过渡指南中有记录,您需要一个Apple开发人员ID才能直接访问该指南。相关摘录:

    Because the status bar is transparent, the view behind it shows through. [...] Use a UIStatusBarStyle constant to specify whether the statusbar content should be dark or light:

    UIStatusBarStyleDefault displays dark content. [...]

    UIStatusBarStyleLightContent displays light content. Use when dark content is behind the status bar.

    也可能感兴趣:

    In iOS 7, you can control the style of the status bar from an individual vew controller and change it while the app runs. To opt in to this behavior, add the UIViewControllerBasedStatusBarAppearance key to an app's Info.plist file and give it the value YES.

    我绝对建议您仔细阅读一下该文档,您也可以使用您的Apple开发人员ID访问该文档。


    如果您希望使用swift获得相同的结果,可以在appdelegate.swift文件中使用此代码:

    1
    UINavigationBar.appearance().barStyle = .BlackTranslucent

    您的状态栏的文本将为白色:—)!


    以下是苹果关于状态栏更改的指导方针/说明。状态栏中只允许使用暗灯(而黑灯)。

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

    如果要设置状态栏样式,则应用程序级别会将.plist文件中的UIViewControllerBasedStatusBarAppearance设置为NO

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

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

  • 覆盖视图控制器中的PreferredStatesBarStyle。

  • -

    1
    2
    3
    4
    5
    6
    7
    8
    override func viewDidLoad() {
        super.viewDidLoad()
        self.setNeedsStatusBarAppearanceUpdate()
    }

    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }

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

    以下是一些在应用程序启动或视图控制器加载期间更改/设置状态栏背景色的黑客技巧。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    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


    我做了一些不同的事情,这对我很有用。

    在代码没有更改的情况下,我对.plist文件进行了如下配置:

    • 基于视图控制器的状态栏外观>否
    • 状态栏样式>uistatusbarstylelightcontent(简单字符串)

    希望有帮助。

    编辑

    对于每个视图控制器,我在故事板中将"状态栏"的模拟度量属性从"推断"更改为"轻内容"。


    如果仍要使用info.plist中的View controller-based status bar appearance设置为yes,这意味着您可以更改每个视图控制器的状态栏,请在viewdidload的状态栏中使用以下内容作为白色文本:

    1
    [[[self navigationController] navigationBar] setBarStyle:UIBarStyleBlackTranslucent];


    在info.plist中,设置字段值no view controller based status bar appearance,并在Target>General setting中设置statusbar-style-light。


    让我给你一个完整的答案。更改状态栏文本颜色非常容易,但在iOS 7中有点混乱,特别是对新手而言。

    如果你试图通过选择视图控制器并在右侧使用模拟的度量值来将故事板中的颜色从黑色变为白色,那么它将不起作用,我不知道为什么。它应该像这样改变,但无论如何。

    其次,在plist中找不到uiviewControllerBasedStatusParapearance属性,但默认情况下,它不在那里。您必须通过单击+按钮自行添加,然后将其设置为否。

    iOS 7状态栏文本颜色

    最后,您必须转到appdelegate.m文件,并在didFinishLaunchWithOptions方法中添加以下内容,添加以下行:

    1
         [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

    这会将所有视图控制器的颜色更改为白色。希望这有帮助!


    在plist中,添加以下内容:

    • 状态栏样式:UIStatusBarStyleLightContent
    • 基于视图控制器的状态栏外观:NO

    实现这一点的关键是,只有全屏视图控制器GET才能指定状态栏的样式。

    如果您使用的是导航控制器,并且希望基于每个视图控制器控制状态栏,那么您将希望子类uinavigationcontroller并实现PreferredStateusBarStyle,以便它返回TopViewController的首选项。

    确保将故事板场景中的类引用从uinavigationController更改为子类(例如下面的示例中的myNavigationController)。

    (以下对我有效。如果您的应用程序是基于Tabbar的,那么您将希望通过对uitabbarController进行子类化来完成类似的工作,但我没有尝试过)。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @interface MyNavigationController : UINavigationController

    @end

    @implementation MyNavigationController

    - (UIStatusBarStyle)preferredStatusBarStyle
    {
        return self.topViewController.preferredStatusBarStyle;
    }

    @end

    总之,编辑您的项目Info.plist并添加:

    View controller-based status bar appearanceNO

    Status bar styleOpaque black style

    或者如果您有原始密钥/值plist

    UIViewControllerBasedStatusBarAppearanceNO

    UIStatusBarStyleOpaque black style


    对于XCODE 5.1:

    将"基于视图控制器的状态栏外观"添加到.plist中的"否"。

    在AppDelegate中,添加:

    1
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

    这就是全部!


    您可以从info.plist执行此操作:

    1)"基于视图控制器的状态栏外观"设置为"否"

    2)"状态栏样式"设置为"uistatusbarstylelightcontent"

    完成


    在info.plist中,将"基于视图控制器的状态栏外观"设置为"否"

    在AppDelegate中添加

    1
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

    Swift 3-Xcode 8.

    如果希望状态栏最初隐藏在启动屏幕上,请尝试此操作,

    第一步:在Info.plist中增加以下内容。

    • View controller-based status bar appearanceNO
    • Status bar is initially hiddenYES

    第二步:用didFinishLaunchingWithOptions方法写。

    1
    2
    UIApplication.shared.isStatusBarHidden = false
    UIApplication.shared.statusBarStyle = UIStatusBarStyle.lightContent

    从Xcode(不带任何编码)执行此操作的最简单方法是:

    • View controller-based status bar appearance添加到info.plist中,并将值设置为NO
    • 现在,转到您的项目目标,在Deployment Info中,您将找到Status Bar Style的选项。将此选项的值设置为Light

    您将拥有White状态栏。


    如果您的应用程序默认需要有UIStatusBarStyleLightContent,但您仍然希望能够在某些屏幕上使用UIStatusBarStyleDefault,您可以选择在控制器级别管理状态栏颜色,但在这种情况下,您必须在每个视图控制器中覆盖preferredStatusBarStyle(或在基本视图控制器中实现它,从中可以其他视图控制器将继承)。解决这个问题的另一种方法是:

    • 在plist中将UIViewControllerBasedStatusBarAppearance设置为NO
    • UIStatusBarStyle设置为UIStatusBarStyleLightContent

    所有视图控制器将使用白色文本作为状态栏。现在只在需要状态栏为黑色文本的视图控制器中添加此方法:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    -(void)viewWillAppear:(BOOL)animated  
    {  
      [super viewWillAppear:animated];  
      [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
    }    

    -(void)viewWillDisappear:(BOOL)animated  
    {  
      [super viewWillAppear:animated];  
      [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
    }

    在IOS 8中:在viewDidLoad中加NavigationController.NavigationBar.BarStyle = UIBarStyle.Black;


    如果我使用uinavigationcontroller,我会在iOS 9和Swift 2.0中进行此操作

    1
    self.navigationController?.navigationBar.barStyle = UIBarStyle.Black

    如果我用莫代尔塞格

    1
    2
    3
    override func preferredStatusBarStyle() -> UIStatusBarStyle {
        return .LightContent
    }

    这对我很有用:

  • plist中,将UIViewControllerBasedStatusBarAppearance设置为YES

  • rootViewController需要方法实现

    1
    -(UIStatusBarStyle)preferredStatusBarStyle
  • 因为我的rootViewController是由椰子(JASidePanelController管理的),我通过一个类别添加了这种方法:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #import"JASidePanelController+StatusBarStyle.h"

    @implementation JASidePanelController (StatusBarStyle)

    - (UIStatusBarStyle)preferredStatusBarStyle
    {
        return UIStatusBarStyleLightContent;
    }

    @end

    • 删除.plist文件中基于视图控制器的状态栏外观(如果已创建),然后重新创建它。

    • 将状态栏样式设置为不透明黑色样式

    在AppDelegate中,在DidFinishLaunching下添加以下代码。

    1
     [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];


    只需更改1)基于Info.plist视图控制器的状态栏appearance->NO写2)

    1
    2
      [[UIApplication
     sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent];

    在里面

    1
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    更改所有视图控制器的状态栏文本颜色

    斯威夫特3

    如果在info.plist中,基于视图控制器的状态栏外观=是

    然后将此扩展用于所有导航控制器

    1
    2
    3
    4
    5
    6
    extension UINavigationController
    {
        override open var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
         }
     }

    如果没有uinavigationcontroller并且只有uiviewcontroller,则使用以下代码:

    1
    2
    3
    4
    5
    6
    extension UIViewController
    {
        override open var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
         }
     }

    目标C

    创建类别类

    对于uiviewcontroller

    在uiviewcontroller+statusbarstyle.h中

    1
    2
     @interface UIViewController (StatusBarStyle)
     @end

    在uiviewcontroller+statusbarstyle.m中

    1
    2
    3
    4
    5
    6
    7
    8
     #import"UIViewController+StatusBarStyle.h"

     @implementation UIViewController (StatusBarStyle)
     -(UIStatusBarStyle)preferredStatusBarStyle
     {
      return UIStatusBarStyleLightContent;
     }
     @end

    对于uinavigationcontroller

    在uinavigationcontroller+statusbarstyle.h中

    1
    2
     @interface UINavigationController (StatusBarStyle)
     @end

    在uinavigationcontroller+statusbarstyle.m中

    1
    2
    3
    4
    5
    6
    7
    8
     #import"UINavigationController+StatusBarStyle.h"

     @implementation UINavigationController (StatusBarStyle)
     -(UIStatusBarStyle)preferredStatusBarStyle
     {
      return UIStatusBarStyleLightContent;
     }
     @end


    这似乎是xcode和ios 7当前版本的一个问题。

    苹果开发者论坛上的一些相关内容正在苹果开发者论坛*上的"iOS 7 beta Livability"中搜索uistatusbarStyleLightContent(目前有32篇文章)。

    我偶然发现它试图把它设置成轻版本。

    (这只是对亚伦回答的后续行动。)


    在iOS 7上,如果要使用uiviewControllerBasedStatusBarAppearance==yes,并且根视图控制器是uinavigationController,则应子类化它并重载ChildViewControllerForStatesBarStyle,例如:

    1
    2
    3
    4
    - (UIViewController*) childViewControllerForStatusBarStyle
    {
        return self.viewControllers.lastObject;
    }

    在此之后,将在按下的视图控制器上调用PreferredStatesBarStyle。


    您可以将其用于iOS 6和7:

    1
    2
    3
    4
    5
    6
    7
    #ifdef __IPHONE_7_0
    # define STATUS_STYLE UIStatusBarStyleLightContent
    #else
    # define STATUS_STYLE UIStatusBarStyleBlackTranslucent
    #endif

    [[UIApplication sharedApplication] setStatusBarStyle:STATUS_STYLE animated:YES];

    请试试这个

    1
    2
    3
    4
    5
    6
    7
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
        [application setStatusBarHidden:NO];
        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
        UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
        if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
            statusBar.backgroundColor = [UIColor blackColor];
        }

    如果要将其设置为任何颜色,请使用下面的代码。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    id statusBarWindow = [[UIApplication sharedApplication] valueForKey:@"statusBarWindow"];
    id statusBar = [statusBarWindow valueForKey:@"statusBar"];

    SEL setForegroundColor_sel = NSSelectorFromString(@"setForegroundColor:");
    if([statusBar respondsToSelector:setForegroundColor_sel]) {
        // iOS 7+
        [statusBar performSelector:setForegroundColor_sel withObject:YourColorHere];
                                                                     ^^^^^^^^^^^^^
    }

    我知道我正在访问私有API,但我已经在许多项目中使用了它,并且苹果已经批准了它。

    提交应用程序时,请将此代码发送到"评论"部分的Apple,并通知您正在使用此代码更改状态栏的颜色。

    是的,不要忘了下面。

    ></P></p>
<div class=


    我必须为Swift和导航控制器做些什么

    1
    2
    3
    4
    5
    extension UINavigationController {
        override open var preferredStatusBarStyle: UIStatusBarStyle {
           return .lightContent
        }  
    }

    很容易改变状态栏颜色的方法。创建导航控制器的子类。

    在视图didload方法中编写此代码。在所有视图控制器中执行此代码

    1
    2
    3
    self.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName :
                                                                            [UIColor whiteColor],
                                                   NSFontAttributeName:[UIFont boldSystemFontOfSize:19]};