我在ios6中开发了我的iPad应用程序,但现在我想在ios7中开发该应用程序,我正在使用.xib文件而我没有使用AutoLayout我想在我的应用程序中使用黑色状态栏而我想要使应用程序像ios 6类似,但状态栏在视图上重叠我使用不同的代码,如下面链接
链接1 Position of navigation bar for modal view - iOS7
链接2 iOS 7 - Status bar overlaps the view
先谢谢
答案 0 :(得分:3)
不会发生,有两种选择:
OR
答案 1 :(得分:2)
在iOS 7中,状态栏是透明的,其他栏 - 即导航栏,标签栏,工具栏,搜索栏和范围栏 - 是半透明的。作为一般规则,您希望确保内容填充应用中条形图后面的区域。
因为状态栏是透明的,所以它后面的视图显示出来。状态栏的样式是指其内容的外观,其中包括时间,电池电量和Wi-Fi信号等项目。使用UIStatusBarStyle
常量指定状态栏内容应为暗(UIStatusBarStyleDefault
)还是亮(UIStatusBarStyleLightContent
):
UIStatusBarStyleDefault
显示黑暗内容。当轻量级内容位于状态栏后面时使用。
UIStatusBarStyleLightContent
显示内容较少。当暗内容位于状态栏后面时使用。
在某些情况下,导航栏或搜索栏的背景图片可以向上延伸到状态栏后面。如果状态栏下方没有栏,则内容视图应使用屏幕的完整高度。
在iOS 7中,您可以从单个视图控制器控制状态栏的样式,并在应用程序运行时进行更改。如果您希望选择不使用此行为并使用UIApplication statusBarStyle
方法设置状态栏样式,请将UIViewControllerBasedStatusBarAppearance
键添加到应用的 Info.plist 文件并提供值NO
。
有关如何使用状态栏和导航控制器的更多详细信息,请参阅我的回答here。
答案 2 :(得分:1)
请尝试以下操作,不要覆盖状态栏:
[navController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navBar.png"] forBarPosition:UIBarPositionTop barMetrics:UIBarMetricsDefault];
答案 3 :(得分: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)];
}