如何使子类化 UINavigationController 的位置重叠状态栏



我有一个名为SubNav的子类,它继承自UINavigationController。当我把它变成这样时:

window.rootViewController = subNav

它在状态栏的下方显示导航栏。但实际上我想把它的位置定在 0,0。不在状态栏 0,20 下。

但是我看到的大多数是 iOS 7 设计的应用程序在 App Store 中,那些 UINavigationBar 位于状态栏下方。

SubNav : UINavigationController

我很抱歉我的英语很差,但我几天来一直困惑。

在 iOS 7 上,状态栏实际上位于底层栏或视图控制器视图上方的图层中。如果基础视图控制器呈现基于滚动视图的视图(例如实际滚动视图、表视图或集合视图),则框架会自动插入其他偏移量。 查看 topLayoutGuide 和 bottomLayoutGuide 属性。

您没有说明您正在使用的视图控制器

类型,但假设您使用的是集合视图、表视图或基于滚动视图的视图控制器,您将看到这种自动偏移行为。

再次假设是这种情况,您可以做的一件事是设置属性:

automaticallyAdjustsScrollViewInsets = NO

完成此操作后,基础视图将被放置在原点 0,0

如果这不是您想要的地方,则需要通过标准手段调整其框架。

最新更新