ios 7状态栏不继承导航栏颜色

Posted

技术标签:

【中文标题】ios 7状态栏不继承导航栏颜色【英文标题】:ios 7 status bar not inheriting nav bar color 【发布时间】:2014-02-26 05:09:31 【问题描述】:

我无法弄清楚如何让 ios 7 中的状态栏使用导航栏的颜色。我将UINavigationControllerSWRevealController 库一起用于滑动菜单导航。

这是页面现在的样子:

我希望状态栏继承导航栏的灰色。我该怎么做?

【问题讨论】:

签出这个。***.com/questions/17678881/… 是的,它设置为 ios7 尝试设置导航栏的颜色 navController.navigationBar.barTintColor = [UIColor grayColor]; 快速提问。你是在 XCode5 上编译的吗? 是的,肯定是在 xcode 5 中编译 【参考方案1】:

您可以修改项目的 Info.plist 并将“查看基于控制器的状态栏外观”设置为 NO

在 AppDelegate 中你必须添加

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

到 AppDelegates didFinishLaunchingWithOptions 方法。

希望它对你有用。

【讨论】:

试过了,我还是看到状态栏显示为黑色 也访问此链接可能会解决您的问题doubleencore.com/2013/09/… 这最终解决了问题......在其他地方做错了什么。谢谢!!【参考方案2】:

在 iOS 7 导航栏图像高度为 64 像素。您需要创建两张图片,一张用于 iOS 7 的导航栏,高度为 64 像素,另一张用于 iOS 6 或更低版本,高度为 44 像素

然后使用此代码

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)?YES:NO) 
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"your 64 image"] forBarMetrics:UIBarMetricsDefault];
  
else 

 [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"your 44 image"] forBarMetrics:UIBarMetricsDefault];

【讨论】:

【参考方案3】:

制作一个自定义视图并将导航栏的颜色设置为该视图,将此视图放在状态栏的位置,并将状态栏的颜色更改为透明。 快乐编码

【讨论】:

【参考方案4】:
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)?YES:NO) 
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"newImage.png"] forBarMetrics:UIBarMetricsDefault];
  
else 

 [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"previousImage.png"] forBarMetrics:UIBarMetricsDefault];

【讨论】:

【参考方案5】:

将导航栏的代理设置为当前视图控制器并将导航栏附加到顶部。

class ViewController: UIViewController, UINavigationBarDelegate 

@IBOutlet weak var navigationBar: UINavigationBar!

override func viewDidLoad() 
    navigationBar.delegate = self


func positionForBar(bar: UIBarPositioning) -> UIBarPosition 
    return .TopAttached

【讨论】:

以上是关于ios 7状态栏不继承导航栏颜色的主要内容,如果未能解决你的问题,请参考以下文章

在iOS 7中隐藏导航栏时,如何更改状态栏的颜色?

iOS 7隐藏导航栏时如何更改状态栏的颜色?

iOS 7 中 UIActivityViewControllers 的模态状态栏和导航栏文本颜色

如何在 iOS 7 上更改状态栏背景颜色和文本颜色?

iOS 7 状态栏与 NavigationBar 冲突

UISplitViewController - 状态栏颜色,iOS 7