当前位置: 首页 > 知识库问答 >
问题:

iOS 7-状态栏与视图重叠

黄弘新
2023-03-14

我有一个ViewController,它位于UINavigationcontroller中,但导航栏是隐藏的。当我在iOS 7上运行应用程序时,状态栏显示在我的视图顶部。有没有办法避免这种情况?

我不想写任何特定于操作系统的代码。

我尝试设置查看基于控制器的状态栏外观NO,但它没有解决问题。

共有3个答案

狄英哲
2023-03-14

这是iOS上的UIViewController的默认行为

如果在UINavigationController中有一个UIViewController,并且导航栏可见,则可以在viewdiload中有以下代码,或者有导航栏的背景图像来执行此操作。

self.edgesForExtendedLayout = UIRectEdgeNone;

如果隐藏了navigationBar,则必须通过移动20个点来调整所有UIView元素。我看不到任何其他的解决办法。使用自动布局会有一点帮助。

下面是检测iOS版本的示例代码,如果您想要向后兼容。

NSUInteger DeviceSystemMajorVersion() {
    static NSUInteger _deviceSystemMajorVersion = -1;
    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{
        NSString *systemVersion = [UIDevice currentDevice].systemVersion;
        _deviceSystemMajorVersion = [[systemVersion componentsSeparatedByString:@"."][0] intValue];
    });

   return _deviceSystemMajorVersion;
}
虞华翰
2023-03-14

如果根本不需要任何状态栏,则需要使用以下数据更新plist:为此,在plist中添加以下两个设置:

<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>

在iOS 7中,您需要在设计应用程序时考虑覆盖透明状态栏。例如,查看新的iOS 7天气应用程序。

万修为
2023-03-14

Xcode 5具有专门用于解决此问题的iOS 6/7增量。在故事板中,我将视图向下移动了20个像素,以便在iOS上查看

由于我的故事板没有使用自动布局,为了在iOS上正确调整视图高度

 类似资料:
  • 我最近升级到xcode 5,当我在iOS模拟器中运行我的应用程序时,启动屏幕与状态栏重叠,当你在应用程序中时,状态栏与我应用程序上的元素重叠,就像我在应用程序左上角的后退按钮一样。我使用phonegap 2.9构建我的应用程序。你知道我怎样才能正确地渲染它吗。

  • 我正在为iOS 7更新我的应用程序,我正在调整我的所有视图,以适应新的透明状态栏(我的应用程序仍将使用不透明的导航栏)。 在每个视图中调整状态栏都相对容易,除了我的一个视图控制器中的UISearchBar连接到UISearchDisplayController时遇到的一个主要问题。 搜索栏似乎显示正常,如下所示: 问题是,一旦我开始搜索,导航栏就会消失(应该如此),但其他所有内容也会向上移动以重叠

  • 我正在构建一个iOS网络应用程序。自从升级到iOS 7后,我注意到状态栏有很多问题。我想让状态栏显示为带黑色文本/图标的白色,但我似乎无法理解。 我尝试过的meta标签有: 只显示一个空的黑条,并向下移动内容: 显示带有白色文本/图标的黑色条: 显示带有白色文本/图标的白色条: 关于我做错了什么,或者如何让状态栏显示为带黑色文本的白色背景,有什么想法吗?

  • 我已经看到了这些问题的答案: 在iOS 7中,状态栏显示在我的视图边界上 状态栏和导航栏出现在我的视图的边界iOS7 新的iOS 7状态栏在Xcode 5编译的应用程序中保留了20px的范围 iOS 7状态栏在iPhone应用程序中恢复为iOS 6默认样式? 然而,这些答案似乎都不适合我。我试图以“黑色不透明”样式显示状态栏,正如我在中设置的那样。 有没有办法让应用程序继续工作,就好像窗口中没有状

  • (如果需要的话,请查看其他编辑,而不是有一个过长的问题,需要编辑才能进行最终编辑以进行澄清)。 我有一个应用程序,其设置如下: 初始化视图控制器(ECSlidingViewController的子类) 主导航控制器(UINavigationController的子类) 主主主视图控制器(UIViewController的子类 在初始视图控制器的中,我加载主导航控制器,主视图控制器作为其根。 这就是

  • 我正在将我的应用程序迁移到iOS 7。为了处理状态栏问题,我添加了以下代码 这在正常情况下工作正常。如果我正在更改方向(应用程序仅支持横向方向)或显示任何视图控制器并取消模型视图控制器,则我的视图控制器对齐方式将更改。状态栏再次与我的视图控制器重叠。这段代码根本不起作用。请指导我解决此状态栏问题。 案例2:这就是我展示视图控制器的方式 裁判: 提前谢谢。