2014-02-26 70 views
2

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

这是一个页面的外观现在:

enter image description here

我想要的状态栏继承导航栏的灰色。我怎样才能做到这一点?

+0

结帐this.http://stackoverflow.com/questions/17678881/how-to-change-status-bar-text-color-in-ios-7 – Mohit

+0

是的,它被设置为ios7 –

+0

尝试设置navigationBar navController.navigationBar.barTintColor = [UIColor grayColor]; – iPatel

回答

2

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

在AppDelegate中你必须

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 

添加到AppDelegates didFinishLaunchingWithOptions方法。

希望它会适合你。

+0

试过这个,我仍然看到状态栏显示为黑色 –

+0

好吧,然后尝试手动设置它从.xib文件... – Irfan

+0

也访问此链接可能会解决您的问题http ://www.doubleencore.com/2013/09/developers-guide-to-the-ios-7-status-bar/ – Irfan

1

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

0
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]; 
} 
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]; 
} 
+0

这是正确的答案。 –

0

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

class ViewController: UIViewController, UINavigationBarDelegate { 

@IBOutlet weak var navigationBar: UINavigationBar! 

override func viewDidLoad() { 
    navigationBar.delegate = self 
} 

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