最新版本的 iOS 带来了许多视觉上的变化,从开发者的角度来看,导航和状态栏是两个明显的变化。
状态栏现在是透明的,它后面的导航栏显示出来。导航栏图像甚至可以延伸到状态栏后面。
首先,如果您是初学者并且刚刚开始 iOS 开发并且对状态栏和导航栏的工作方式感到困惑,您可以简单地阅读我发现非常有用的博客文章HERE 。它拥有 iOS 7 中与导航和状态栏相关的所有信息。
现在来回答你的问题。首先,我可以看到两个不同的问题。一个是您的状态栏和导航栏都相互碰撞,如您在带有图像的问题中所示。
问题:问题是您之前在视图控制器中拖动了一个导航栏,该导航栏在 iOS 6 中正常工作,但随着 iOS 7 SDK 的到来,这种方法导致状态栏和导航栏相互重叠。
第一个问题的解决方案:您可以使用 UIBarPositionTopAttached 或者您可以使用视图边界和框架,我也可以建议并将您链接到Apple 的文档和 bla bla bla ,但这需要一些时间来解决问题。
解决此问题的最佳和最简单的方法是将视图控制器嵌入导航控制器中,仅此而已。您只需选择视图控制器并转到 Editor > Embed In > Navigation Controller 即可。(如果你的旧导航栏有内容,可以先往下拉,将视图控制器嵌入到导航控制器中,然后移动新导航栏上的栏按钮,然后删除旧导航栏)
第二个问题的解决方案:此解决方案适用于您在更新中提到的特定问题,不适用于阅读本文的公众。如您所见,导航和状态栏不可见,透明区域显示父视图控制器。我并没有真正使用您为什么面临这个问题,但很可能是因为涉及到一些第三方库,如 ECSlidingView 或任何其他库。您可以在情节提要中选择此视图控制器,并将视图的背景颜色设置为与导航栏相同。这将停止在后面显示父视图控制器,并且您的导航栏和状态栏将开始显示。现在您可以使用文本视图或您在其中使用的任何内容来覆盖视图控制器的其余部分。
希望这可以帮助!