在 iPad 缩放模式下隐藏状态栏会向下推窗口

Posted

技术标签:

【中文标题】在 iPad 缩放模式下隐藏状态栏会向下推窗口【英文标题】:Hiding status bar on iPad scaled mode pushes window down 【发布时间】:2016-01-22 00:50:44 【问题描述】:

当我打电话时

[[UIApplication sharedApplication] setStatusBarHidden:hideStatusBar];

在以缩放模式运行 iPhone 应用程序的 iPad 上,状态栏甚至不会隐藏。相反,一个 20 像素的黑色空间被推到我的 iPad 视图顶部;最终让我的应用被苹果拒绝,即使我不希望任何人在 iPad 上使用这个“仅限 iPhone”的应用。

如果我删除 setStatusBarHidden 调用,iPhone 显然不会隐藏状态栏。在 iPad 运行缩放模式时,黑条不再出现。

基于视图控制器的状态栏外观设置为 NO。

我还尝试了以下方法:

- (BOOL)prefersStatusBarHidden

  return hideStatusBar;

这个设置之前我需要隐藏状态栏。

hideStatusBar = YES; //changes
[self setNeedsStatusBarAppearanceUpdate];

但是,没有调用“prefersStatusBarHidden”。我只需要一个解决方案,这样黑条就不会出现在 iPad 缩放模式上,而状态栏会在实际 iPhone 上消失。

我在 ios 8 和 9 上运行它。

【问题讨论】:

而且我不想添加代码来检测应用程序是否在兼容/缩放模式下运行。 【参考方案1】:

我发现,除了您拥有的代码之外,您还必须创建 Info Plist BOOL 项 View Controller Status Bar Appearance(也称为 UIViewControllerBasedStatusBarAppearance)并将其设置为 YES。

适合我的代码是:

-(BOOL)prefersStatusBarHidden

    return YES;


- (void)viewDidAppear:(BOOL)animated

    [super viewDidAppear:NO];

    [self setNeedsStatusBarAppearanceUpdate];
...

【讨论】:

以上是关于在 iPad 缩放模式下隐藏状态栏会向下推窗口的主要内容,如果未能解决你的问题,请参考以下文章