隐藏在 iPad 上运行的 iPhone 应用程序的状态栏
Posted
技术标签:
【中文标题】隐藏在 iPad 上运行的 iPhone 应用程序的状态栏【英文标题】:Hiding the Status Bar for an iPhone app running on iPad 【发布时间】: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,但都没有帮助。 检查你的代码你在哪里弄错了 【参考方案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以上是关于隐藏在 iPad 上运行的 iPhone 应用程序的状态栏的主要内容,如果未能解决你的问题,请参考以下文章
UIPickerView 作为 inputView 不隐藏在 iPad 上
如何使用 iOS 13 在 iPad/iPhone 上隐藏页面缩放栏