小编bob*_*ics的帖子

如何在没有状态栏重叠的iOS7上呈现视图控制器

我看到当我将我的应用程序迁移到iOS 7时,在呈现视图控制器时导航栏出现在状态栏下.我想很多人都遇到过同样的问题.这是我所看到的截图:

现有的导航

要求:

  • 新视图必须"模态"出现,即我需要presentViewController.

  • 显示某种导航栏或工具栏,状态栏采用iOS 7样式导航栏的背景颜色.

  • 它必须适用于iOS 6.

  • 我正在使用xib来处理布局,并启用了autolayout.

选项:

A.将视图的框架向下移动一点.

呃,我们是否已经回到了iOS之前的5天并且没有框架?另外,与自动布局混合通常不是一个好主意.

B.在导航栏下方添加一点间隙.

选项A和B的一个缺点是状态栏不会混合到您的导航中:

导航与差距

C.以编程方式添加约束.

主要缺点是您必须使用约束并计算导航和状态栏高度.呸.

D.拉伸导航栏/工具栏的高度以包括状态栏的区域.

在iOS 7上看起来不错,但在iOS 6上中断.您需要以编程方式更新导航栏的高度,并确保视图的其余部分正确更新.乱.

在此输入图像描述

E.在IB中使用iOS6/7增量进行混乱.

多个缺点:你将硬编码ios6/7增量.也不适用于autolayout.

F.使用嵌套的UINavigationController.

这是我选择的解决方法.见下面的答案.

uinavcontroller解决方法

objective-c statusbar uiviewcontroller ios ios7

20
推荐指数
2
解决办法
3万
查看次数

标签 统计

ios ×1

ios7 ×1

objective-c ×1

statusbar ×1

uiviewcontroller ×1