在iOS 7中隐藏状态栏时,防止UINavigationController调整原点

jag*_*cow 11 iphone objective-c statusbar uinavigationcontroller ios

我有一系列UINavigationControllers内部UITabBar控制器.我想隐藏状态栏.但是,当我执行此操作时,导航栏会自行调整以缩短:

问题形象

在此输入图像描述

我该如何防止这种情况并获得如下图所示的内容?

期望的结果

在此输入图像描述

目前我只是隐藏状态栏使用 [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];

cod*_*cat 8

使用自定义sizeThatFits创建自定义UINavigationBar.

@implementation UINavigationBar (customNavigationBar)
  - (CGSize)sizeThatFits:(CGSize)size {
    CGSize newSize = CGSizeMake(self.frame.size.width,64);
    return newSize;
  }
@end
Run Code Online (Sandbox Code Playgroud)

如果有任何疑问评论

  • 不,我明白了.但是当状态栏未隐藏时,使用64的固定高度会导致84px高的导航栏.因此,我们需要减去状态栏的高度以获得一致的64px (2认同)