iOS 7 - 状态栏与视图内容重叠

时间:2014-01-13 05:46:48

标签: ios

我在我的应用程序中使用状态栏并希望保持ios 6和ios 7之间的兼容性。我希望状态栏的行为与ios 6相同。我不希望状态栏与视图控制器重叠。

4 个答案:

答案 0 :(得分:0)

尝试在视图的viewWillAppear函数中添加以下代码:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    // if this is ios7 this code will make the view appear properly below the navigation bar
    if ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0) {
        self.edgesForExtendedLayout = UIRectEdgeNone;
        self.extendedLayoutIncludesOpaqueBars = YES;
    }
}

答案 1 :(得分:0)

试试这个〜

if(OVER_IOS7){
    self.edgesForExtendedLayout = UIRectEdgeNone;
    [self.navigationController.navigationBar setTranslucent:NO]
}

答案 2 :(得分:0)

试试这个。

将此密钥添加到info.plist文件

查看基于控制器的状态栏外观

将此值设置为: - 否

答案 3 :(得分:0)

在iOS 7中,状态栏是透明的,其他栏 - 即导航栏,标签栏,工具栏,搜索栏和范围栏 - 是半透明的。作为一般规则,您希望确保内容填充应用中条形图后面的区域。

除非您为条形图提供自定义背景图像,否则大多数条形图也会在它们后面留下模糊。

iOS 7引入了barPosition属性来识别条形位置,这有助于您指定自定义背景图像何时应延伸到状态栏后面。 UIBarPositionTopAttached值表示条形图位于屏幕顶部,其背景向上延伸到状态栏区域。相反,UIBarPositionTop值意味着栏位于其本地上下文的顶部 - 例如,位于弹出窗口的顶部 - 并且它不提供状态栏的背景。

默认情况下,所有条形按钮都是无边框的。有关详细信息,请参阅条形按钮。

状态栏

因为状态栏是透明的,所以它后面的视图显示出来。状态栏的样式是指其内容的外观,其中包括时间,电池电量和Wi-Fi信号等项目。使用UIStatusBarStyle常量指定状态栏内容应为暗(UIStatusBarStyleDefault)还是light(UIStatusBarStyleLightContent):

UIStatusBarStyleDefault显示黑暗内容。当轻量级内容位于状态栏后面时使用。图片:../ Art / status_bar_default_iphone_2x.pngimage:../ Art / status_bar_default_ipad_2x.png UIStatusBarStyleLightContent显示轻量级内容。当暗内容位于状态栏后面时使用。图片:../ Art / status_bar_light_iphone_2x.pngimage:../ Art / status_bar_light_ipad_2x.png 在某些情况下,导航栏或搜索栏的背景图像可以向上延伸到状态栏后面(有关详细信息,请参阅导航栏和搜索栏和范围栏)。如果状态栏下方没有栏,则内容视图应使用屏幕的完整高度。要了解如何确保视图控制器正确显示其视图,请参阅使用视图控制器。

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