【问题标题】:Status bar tint color changes to black in iOS 6在 iOS 6 中,状态栏色调颜色更改为黑色
【发布时间】:2013-01-31 05:50:50
【问题描述】:

我显然不明白如何在 iOS 6 中使用状态栏色调。我读过这个问题: Change statusbar tint colour 但是实施那里建议的解决方案并没有解决问题。

我已经在目标摘要窗格中配置了设置(样式和着色的默认设置)并将状态栏色调参数字典添加到我的 info.plist 中,如 WWDC 2012 高级外观自定义中所述。

我的状态栏在启动时颜色正确,但是一旦我导航到另一个视图控制器,状态栏就会变为黑色。

第二个视图控制器嵌入在它自己的导航控制器中。这可能是问题的根源吗?

无论是什么原因,我都希望有人能提供一个解决方案,让我可以在整个应用程序中使状态栏保持一致。

如果有任何需要澄清的地方,请告诉我,并提前感谢您的帮助。

【问题讨论】:

    标签: iphone ios uikit uistatusbar


    【解决方案1】:

    今天我遇到了同样的问题,但没有一个建议的答案对我有帮助。

    由于我定义了自己的颜色(红色、蓝色、绿色、alpha),我不想通过 IB 添加 UIStatusBar,我需要一个单行解决方案。

    经过一段时间的测试,以下对我有用:

    1. 在项目摘要中,从下拉菜单中选择状态栏样式黑色半透明。
    2. application: didFinishLaunchingWithOptions: 中输入以下代码行:

      self.window.backgroundColor = [UIColor redColor]; //example color

    通过application: didFinishLaunchingWithOptions:中的代码设置样式时,这对我不起作用

    享受吧!

    【讨论】:

    • 谢谢,如果状态栏样式设置如下:application.statusBarStyle = UIStatusBarStyleBlackTranslucent。
    • 非常感谢!我已经担心我不得不使用 uinavigationbar 方法,这真的会搞砸我的项目,因为我使用了多个导航栏并且在它们之间切换会导致状态栏颜色消失。效果很好!
    • 这不适用于针对 iOS 6.1 SDK 构建的我。任何人都可以确认是这种情况吗?
    • 如果我将[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackTranslucent; self.window.backgroundColor = [UIColor redColor]; 添加到AppDelegate,它对我有用,但仅限于iPhone。在 iPad 上,blackTranslucent 似乎不起作用。
    【解决方案2】:

    一种解决方案是在界面前面放置一个不可见的导航栏。如果您已经在导航界面中,您可能必须继承 UINavigationController。例如:

    UINavigationBar* nav = [[UINavigationBar alloc] initWithFrame:CGRectMake(0,0,320,1)];
    nav.tintColor = [UIColor redColor];
    nav.alpha = 0;
    [self.navigationBar.superview addSubview:nav];
    

    这会使状态栏变为红色,而不管导航栏的色调或背景颜色如何。如果没有导航栏,这也有效。

    信用到期;我想到了将alphahttps://stackoverflow.com/a/13587525/341994 设置为0。

    【讨论】:

      【解决方案3】:

      第二个视图控制器嵌入在它自己的导航中 控制器。这可能是问题的根源吗?

      这很可能是问题所在 - 但我也曾认为 plist 条目会使其成为全球性的。 您是否尝试过使用 UIAppearance 以编程方式设置它(假设您只支持 ios6+)?

      [[UITabBar appearance] setTintColor:[UIColor redColor]];
      

      【讨论】:

      • 如果我没记错的话,iOS 6 中的状态栏的色调来自 UINavigationBar,而不是 UITabBar。我已经使用外观协议(实际上在 iOS 5+ 中可用)设置了导航栏的外观。导航栏的自定义图像在整个应用程序中按预期显示。但是,在从视图中删除初始导航控制器后,状态栏无法从导航栏中获取其色调。即使在导航回它之后,状态栏仍然是黑色的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-31
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 2018-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多