如何在 iOS 7 中使用 NavigationBar 背景图像 44px 高度更改状态栏背景?

Posted

技术标签:

【中文标题】如何在 iOS 7 中使用 NavigationBar 背景图像 44px 高度更改状态栏背景?【英文标题】:How to change status bar background with NavigationBar background image 44px height in iOS 7? 【发布时间】:2014-03-19 03:46:05 【问题描述】:

我正在使用 NavigationController 和 NavigationBar 可见。我从这里读到Bars and Bar Buttons

黑色,如果使用 UIBarPositionTopAttached。窗口提供 背景,如果使用 UIBarPositionTop。

首先,我让我的 ViewController 符合 UIBarPositioningDelegate 并实现

- (UIBarPosition)positionForBar:(id <UIBarPositioning>)bar

    return UIBarPositionTop;

然后我为 NavigationBar 使用 44 像素高度的图像

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

并设置窗口背景颜色

self.window.backgroundColor = [UIColor greenColor];

但结果是 StatusBar 背景颜色仍然是黑色。我希望它是绿色的

为什么以及如何解决这个问题?

【问题讨论】:

【参考方案1】:

你不需要这个答案,但我遇到了同样的问题

我只是用了尺寸(320 x 64)的图片,并覆盖了状态栏的背景区域,所以黑色部分被丢弃了,你可以为前20像素添加一些其他的bg,它将覆盖状态栏

【讨论】:

以上是关于如何在 iOS 7 中使用 NavigationBar 背景图像 44px 高度更改状态栏背景?的主要内容,如果未能解决你的问题,请参考以下文章

拍照时如何更改 UIImagePickerController 中按钮的颜色?

我应该如何在 iOS 7 中使用具有 iOS 6 风格的 UIButtons?

如何使用导航栏在模态视图中更改iOS 7中的UIStatusBarStyle?

如何在 iOS 7 中使用加载器

如何在 iOS 7 中更改键盘的背景颜色

如何在 iOS 7+ 中使用当前 ViewController 设置 PresentingViewController