在 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 缩放模式下隐藏状态栏会向下推窗口的主要内容,如果未能解决你的问题,请参考以下文章

向下滚动以逐渐隐藏菜单栏或视图并向上滚动

在iPad横向模式下隐藏主视图UISplitViewController iOS

在 iOS 7 中,如果我使用 `prefersStatusBarHidden` 方法隐藏状态栏,导航栏会缩小/失去高度。我可以停止这种行为吗?

ipad相机全屏:隐藏状态栏:返回:mainViewController高度增加20 px

如何使用 iOS 13 在 iPad/iPhone 上隐藏页面缩放栏

隐藏的导航栏仍然会向下推视图