setStatusBarHidden:YES 如果我在使用相机时不想要状态栏,在哪里放置

Posted

技术标签:

【中文标题】setStatusBarHidden:YES 如果我在使用相机时不想要状态栏,在哪里放置【英文标题】:where to put setStatusBarHidden:YES if I don't want status bar when using camera 【发布时间】:2013-10-28 15:58:14 【问题描述】:

我是 ios 开发新手。我希望仅在启动相机时隐藏状态栏,以便相机控件不会与状态栏重叠。我找到了添加此行的解决方案:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:YES];

我应该放在哪里?我试图在我的 -(IBAction)OpenCamera 和 - (void)viewDidLoad 中添加,但两者都不起作用。

感谢您的帮助!

【问题讨论】:

【参考方案1】:

在 iOS 7 中隐藏状态栏尝试添加:

- (IBAction)takeCamera 
[UIApplication sharedApplication].statusBarHidden = YES;

 BOOL cameraIsShow = YES   //custom boolean


- (BOOL)prefersStatusBarHidden 

  if(cameraIsShow == YES) 
    return YES;
 
  else return NO;

【讨论】:

谢谢,我不知道为什么 preferStatusBarHidden 不起作用,但我明白了您的想法并改用 void 函数,它现在可以工作 =) @user2898314 很高兴为您提供帮助;)【参考方案2】:

如果您使用的是最新的 SDK - Xcode 5 - 那么您可能需要将 View-controller 状态栏外观布尔值添加到您的应用程序 .plist 中

(附屏幕)

我很确定它应该设置为 NO 以便您能够动态控制外观。你也只需要:

[[UIApplication sharedApplication] setStatusBarHidden:YES];

[[UIApplication sharedApplication] setStatusBarHidden:NO];

我认为withAnimation 已被弃用

【讨论】:

在我将状态栏设置为初始隐藏后,我应该把那行放在哪里?我又试了一次,还是不行。 它是一个新的 plist 项:视图控制器状态栏外观 我添加了一个名为“状态栏最初隐藏”的新 plist 项,并将布尔值设置为 NO。你是这个意思吗?下一步呢,我的意思是我应该把 [[UIApplication sharedApplication] setStatusBarHidden:YES]; ? 在 iOS 7 (Xcode 5) 的 plist 中,最后一项是 View-controller 状态栏外观!

以上是关于setStatusBarHidden:YES 如果我在使用相机时不想要状态栏,在哪里放置的主要内容,如果未能解决你的问题,请参考以下文章

去掉页面状态栏的方法

隐藏状态栏时 UIView 不会调整大小

状态栏仍然显示

隐藏状态栏IOS [重复]

iOS 7 状态栏与 UIImagePickerController 上的相机控件重叠

如何使用objective-C在ios 9中隐藏特定视图控制器的状态栏