【问题标题】:iOS Status Bar changing color to match navigation bar on its owniOS 状态栏会自行更改颜色以匹配导航栏
【发布时间】:2013-03-20 16:55:00
【问题描述】:

我的 AppDelegate 中有一个 UINavigationController 和一个具有 UITableView 的 RootViewController。启动时,状态栏将其颜色更改为导航栏的颜色。当我将导航栏涂成橙色时,状态栏是这样的:

我的导航栏似乎移到了顶部。导航控制器似乎无法识别状态栏。我该如何解决这个问题?

我的应用程序中只有一个 AppDelegate 和一个空的 RootViewController。我的application:didFinishLaunchingWithOptions 是:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
RootViewController *rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
[navigationController.navigationBar setTintColor:[UIColor orangeColor]];
self.window.rootViewController = navigationController;
[self.window makeKeyAndVisible];
return YES;

我的 RootViewController IB 文件只有一个空视图。

没有什么不寻常的。我对 iOS 非常有经验,这就是我每次都这样做的方式。我不知道这次有什么不同。

有人可以给我建议吗?谢谢

【问题讨论】:

  • 是什么让您说您的导航栏发生了任何变化?从您发布的屏幕截图来看,一切都很好。

标签: iphone ios objective-c cocoa-touch uinavigationcontroller


【解决方案1】:

在 iOS 6.0 中,状态栏会更改颜色以匹配导航栏(如果有的话)。这是预期的行为。

【讨论】:

  • 有趣 - 我刚决定从 5 开始进入完整的 iOS 6 开发。有什么方法可以覆盖这个吗?我注意到当我设置背景图像时也会发生同样的情况。我刚刚看了一些应用,我看到了黑色的状态栏
  • 状态栏通过“查看”左上角的像素(如果我没记错的话)来分析导航栏的图像/颜色 - 从该像素的颜色值中获取颜色。
  • 没有编程方式来覆盖它吗?彩色状态栏很烦人。我刚刚打开了一些仅适用于 iOS 6 的应用程序,它们具有自定义彩色导航栏和黑色状态栏。
【解决方案2】:

将您的状态栏样式设置为UIStatusBarStyleBlackOpaque,您应该会看到一个纯黑条。

为此,请在您的应用程序实例上使用setStatusBarStyle:animated:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque 
                                            animated:NO];

【讨论】:

    【解决方案3】:

    添加此代码:

    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackOpaque;
    

    这会让你的状态栏再次变黑。

    您应该更改导航栏颜色后添加它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-02
      • 2015-05-07
      相关资源
      最近更新 更多