1

我已经在 ios6 中开发了我的 iPad 应用程序,但现在我也想在 ios7 中开发该应用程序,我正在使用 .xib 文件并且我没有使用 AutoLayout 我想在我的应用程序中使用黑色状态栏并且我想做应用程序类似于 ios 6,但状态栏在视图上重叠我使用不同的代码,如下面的链接

链接 1 模态视图导航栏的位置 - iOS7

Link 2 iOS 7 - 状态栏与视图重叠

提前致谢

在此处输入图像描述

4

4 回答 4

3

不会发生,两种选择:

  1. 使用相应大小的自定义背景图像.. IIRC 44(用于导航栏)+ 20(用于状态栏)

或者

  1. 通过使用黑色的自定义视图来考虑 20 像素:D
于 2013-09-19T11:26:48.970 回答
2

在 iOS 7 中,状态栏是透明的,而其他栏——即导航栏、标签栏、工具栏、搜索栏和范围栏——是半透明的。作为一般规则,您要确保内容填满应用程序中的栏后面的区域。

因为状态栏是透明的,所以它后面的视图就透出来了。状态栏的样式是指其内容的外观,包括时间、电池电量、Wi-Fi 信号等项目。使用一个UIStatusBarStyle常量来指定状态栏内容应该是深色(UIStatusBarStyleDefault)还是浅色(UIStatusBarStyleLightContent):

UIStatusBarStyleDefault显示深色内容。当状态栏后面有轻量级内容时使用。 UIStatusBarStyleLightContent显示轻量级内容。当深色内容位于状态栏后面时使用。

在某些情况下,导航栏或搜索栏的背景图像可以在状态栏后面向上延伸。如果状态栏下方没有栏,则内容视图应使用屏幕的全高。

在 iOS 7 中,您可以从单个视图控制器控制状态栏的样式,并在应用程序运行时更改它。如果您希望选择退出此行为并使用该UIApplication statusBarStyle方法设置状态栏样式,请将UIViewControllerBasedStatusBarAppearance键添加到应用程序的Info.plist文件并为其指定值NO

有关如何在导航控制器中使用状态栏的更多详细信息,请参阅我的答案

于 2013-09-19T11:55:49.093 回答
1

试试下面不要覆盖状态栏:

[navController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navBar.png"] forBarPosition:UIBarPositionTop barMetrics:UIBarMetricsDefault];
于 2013-09-19T11:15:56.867 回答
1

使用旧样式状态栏的解决方法是修改主视图的框架并将其向下移动 20px。这仅适用于 viewWillAppear 函数,但您需要确保调用一次。这更像是一个黑客而不是一个解决方案:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
[self.view setFrame: CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y+20, self.view.frame.size.width, self.view.frame.size.height-20)];
}
于 2013-09-26T03:06:59.150 回答