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

时间:2014-02-26 05:09:32

标签: ios ios7 uinavigationcontroller navbar ios7-statusbar

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

这就是页面现在的样子:

enter image description here

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

5 个答案:

答案 0 :(得分:2)

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

在AppDelegate中你必须添加

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

到AppDelegates didFinishLaunchingWithOptions Method。

希望它对你有用。

答案 1 :(得分: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];
}

答案 2 :(得分:1)

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

答案 3 :(得分: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];
}

答案 4 :(得分:0)

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

class ViewController: UIViewController, UINavigationBarDelegate {

@IBOutlet weak var navigationBar: UINavigationBar!

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

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