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

iOS 7状态栏回到iPhone应用程序中iOS 6的默认样式?

仉姚石
2023-03-14

在iOS7中,Uistatusbar的设计方式与视图合并,如下所示:

>

  • 这很酷,但当视图的顶部有一些东西时,它会有点混乱,并与状态栏重叠。

    是否有一个简单的解决方案(例如在info.plist中设置一个属性)可以将它的工作方式(不重叠)改变回iOS6中的工作方式?

    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
    
  • 共有1个答案

    慕宏儒
    2023-03-14

    这是从我写的一篇博客文章中交叉发布的,但这里是iOS7上状态栏、导航栏和容器视图控制器的完整概要:

    >

  • 无法保留iOS 6样式状态栏布局。状态栏总是与iOS 7上的应用程序重叠

    不要混淆状态栏外观和状态栏布局。外观(光线或默认值)不影响状态栏的布局方式(框架/高度/重叠)。同样需要注意的是,系统状态栏不再具有任何背景色。当API引用UIStatusBarStyleLightContent时,它们意味着清晰背景上的白色文本。UIStatusBarStyleDefault是背景清晰的黑色文本。

    UINavigationController和UITabBarController还将尝试在其子视图层次结构中填充表视图和集合视图的contentInsets。它的方式类似于#4中的状态栏逻辑。通过将表视图和集合视图的automaticallyAdjustsScrollViewInsets设置为NO(默认设置为YES),可以通过编程方法防止这种情况发生。这给Whisper和Riposte带来了一些严重的问题,因为我们使用contentInset调整来控制表格视图的布局,以响应工具栏和键盘的移动。

    重申一下:没有办法回到iOS 6风格的状态栏布局逻辑。为了接近这一点,您必须将应用程序的所有视图控制器移动到一个容器视图中,该视图从屏幕顶部偏移20点,在状态栏后面故意留下一个黑色视图,以模拟旧外观。这就是我们在Riposte和Whisper中最后使用的方法。

    苹果公司正在努力确保你不要试图做第9件事。他们想让我们重新设计所有的应用程序,使其位于状态栏下面。然而,出于用户体验和技术原因,有许多令人信服的论点,为什么这并不总是一个好主意。您应该做对您的用户最好的事情,而不是简单地跟随平台的奇思妙想。

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

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

    • 如何更改iPhone应用程序中标题部分(状态栏)的颜色。带有载体、时间和电池的部件。 这部分 更具体地说,这一部分。我想将UI从黑色改为白色或更容易看到的颜色。

    • 我的iPhone应用程序要求状态栏始终隐藏。这通常很容易做到,如果我只在iPhone上运行应用程序,它就可以工作。然而,如果我在iPad上运行该应用程序,状态栏仍然会出现在内容的顶部。那么,无论我的iPhone only应用程序运行在什么设备上,我如何确保状态栏都是隐藏的呢?我目前正在代码中执行以下操作: 为每个视图控制器调用此方法(我实际上在UIViewController上创建了一个类别,它可

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

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