【问题标题】:Hiding the Status Bar for an iPhone app running on iPad隐藏在 iPad 上运行的 iPhone 应用程序的状态栏
【发布时间】:2014-01-28 21:09:01
【问题描述】:

我的 iPhone 应用程序要求始终隐藏状态栏。这通常很容易做到,如果我只在 iPhone 上运行该应用程序,它就可以工作。但是,如果我在 iPad 上运行该应用程序,状态栏仍会出现在内容的顶部。那么,无论我的仅限 iPhone 的应用程序在什么设备上运行,我如何确保隐藏状态栏?我目前在我的代码中执行以下操作:

为每个视图控制器调用这个方法(我实际上在 UIViewController 上创建了一个类别,它为任何 VC 自动实现这个,但它基本上与在每个 vc 文件中编写它是一样的):

-(BOOL)prefersStatusBarHidden{
    return YES;
}

我还在 Info.plist 中将“状态栏最初隐藏”设置为“是”,“查看基于控制器的状态栏外观”设置为“否”。我也试过检测正在使用的设备并调用

[UIApplication sharedApplication]setSetStatusBarHidden:YES]

在 AppDelegate 中,但也没有运气。所以,我相信我已经尝试了几乎所有人们想尝试的东西。

【问题讨论】:

  • 我基本上什么都试了。在视图控制器中编写 prefersStatusBarHidden,在 Info.plist 中将“状态栏最初隐藏”设置为 YES,将“基于视图控制器的状态栏外观”设置为 NO。我还尝试检测正在使用哪个设备并调用 [UIApplication sharedApplication]setSetStatusBarHidden:YES],但也没有运气。在 iPhone 上运行时,仅在我的视图控制器上单独使用 prefersStatusBarHidden 即可
  • 如果我把它做成一个通用应用程序,那么我的代码就可以工作并且状态栏会隐藏在 iPad 上。但是,这个应用程序并不是通用的,所以这不是一个可行的解决方案
  • 如果你设置了prefersStatusBarHidden,“基于视图控制器的状态栏外观”应该设置为YES,你可能已经知道了,但你的措辞有点奇怪。
  • 抱歉,我的意思是说我已经尝试将该键设置为 YES 和 NO,但都没有帮助。
  • 检查你的代码你在哪里弄错了

标签: ios iphone ipad statusbar uistatusbar


【解决方案1】:

这似乎是在 iOS 7.1 中引入的,并且会影响运行具有视网膜图形的 iPhone 应用程序的非视网膜 iPad。

开发人员没有解决方案。我认为 Apple 将不得不修补这个...

问题设备: 平板电脑 2 iPad Mini(非视网膜)。

iOS 7.0 中不存在此问题,并且可以通过发布的其他解决方案修复 7.0 的状态栏问题。

2014 年 9 月更新 - iOS 8:

iOS 8 已修复此错误!!!!!!

【讨论】:

  • Apple 针对 iOS 8 和 iOS 8.1 修复了此问题。标记为解决方案?
【解决方案2】:

添加此代码。

- (BOOL)prefersStatusBarHidden{
return YES;}

【讨论】:

    【解决方案3】:

    YourViewController 中添加属性

    @property BOOL statusBarHidden;
    

    然后在ViewDidLoad中添加以下代码行

        [self prefersStatusBarHidden];
        [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
        self.statusBarHidden = YES;
    

    然后在YourViewController中添加一个方法

    - (BOOL)prefersStatusBarHidden{
    return YES;}
    

    并且不要忘记在您的代码中添加#import <UIKit/UIKit.h>,它适用于 IOS6.1 和 7.0 :)

    【讨论】:

    • 此代码存在相同问题。同样,该问题仅在 iPad 上以 2x 模式运行 iPhone 应用程序时才会出现。否则,仅使用 prefersStatusBarHidden 就足以隐藏状态栏。感谢您的建议!
    • 你可以试试这个链接可能会帮助你解决问题forums.macrumors.com/showthread.php?t=1649030
    猜你喜欢
    • 2014-05-01
    • 2011-02-23
    • 2013-10-01
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多