【问题标题】:Issue when hiding the status bar in landscape mode iphoneiphone在横向模式下隐藏状态栏时的问题
【发布时间】:2012-06-05 16:36:42
【问题描述】:

在我的 iPhone 应用程序中,整个应用程序的默认方向是横向模式。我想隐藏状态栏,所以我在 appDelegate 中使用了[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];。但是状态栏只隐藏在第一个初始屏幕中,并且在视图控制器中它在顶部留下一个空白区域,在所有其他视图控制器中它在底部留下一个空白区域。我使用以下方法解决了这个问题,但没有奏效。

  1. [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];

  2. 在 info.plist 状态栏中最初是hidden = YES

  3. 在界面生成器中设置状态栏等于None。

  4. 已添加[self.view setNeedsLayout];
    [self setWantsFullScreenLayout:YES];

仍然没有修复。任何想法?请帮忙。

【问题讨论】:

  • 我尝试使用 [application setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone],对我来说它工作正常。你是如何分配视图控制器框架的?
  • 我没有通过代码分配框架,我已将视图添加到界面构建器文件中的视图中。
  • 您是否从 xib 中删除了状态栏?可能是 setStatusBarHidden:YES 函数只是为纵向模式调用的,尝试所有方向模式,我对此没有任何其他想法。
  • 我也试过了,还是不行。

标签: iphone hide landscape statusbar uiapplication


【解决方案1】:

找到了解决办法,隐藏状态栏[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];就够了。但还是有一片空白。当我通过 Interface Builder 将视图添加到视图控制器时,当状态栏被隐藏时,每个视图的帧大小不会自动调整。因此,我必须在 Interface Builder 的 Size Inspector 中为每个视图设置 Autoresizing 方向。这解决了这个问题。希望它对某些人有所帮助,这就是我在这里发布答案的原因。 :)

【讨论】:

  • 我很高兴它帮助了你:)
【解决方案2】:

打开您的 .plist 文件并添加一个新键“状态栏最初是隐藏的”,然后将值设置为 YES。希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 1970-01-01
    • 2016-01-26
    相关资源
    最近更新 更多