iOS 7红色状态栏

时间:2014-09-11 17:25:57

标签: ios statusbar launch

当Shazam打开时,由于背景录制,状态栏变为红色并使其高度加倍,但这会破坏我应用中的UI。我现在正在尝试更改我的代码以支持不同的状态栏大小,因为红色状态栏也是不透明的,但由于这个原因我无法提出一般解决方案:

当状态栏最初为红色时,当我启动应用时,启动图像会缩放并毁掉。如何解决这个问题?

注意:我的应用不使用录音。

[编辑]

我找到的唯一解决方案是在.plist中将“状态栏最初隐藏”设置为YES。我不需要状态栏在应用程序启动时可见,特别是当状态栏比平时更高时,即在录制时或在通话期间影响我的启动图像时。

[编辑2]

有些情况下,当应用从背景状态转到前台时,启动图像会短暂可见。为了解决这个问题,我使用了基于视图控制器的状态栏外观:

- (BOOL)prefersStatusBarHidden
{
    if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground)
    {
        return YES;
    }

    return NO;
}

这可确保在应用程序到达前台时始终隐藏状态栏,因此启动图像永远不会受到影响。不要忘记在setNeedsStatusBarAppearanceUpdate通知appDidEnterBackground和({1}}通知中的(动画块内)。

2 个答案:

答案 0 :(得分:3)

红色状态栏是系统功能。你无法解决这个问题 - 而且它并不是你的“错误”。如果启动屏幕看起来如此 - 如果用户想要在使用Shazam时打开您的应用程序,他们将看到红色条,并且将启动启动图像。您可以将启动图像更改为缩放时看起来很好,但是在其余时间它会看起来很糟糕(当启动时红色条不在屏幕顶部)。

答案 1 :(得分:0)

经过长期漫长的长期研究和障碍后,我发现了以下的简单解决方案

在Targets-> General->部署信息中检查HideStatusBar选项

如下所示!

enter image description here

在viewDtroller(你在RootViewController中保存的那个)中,在viewDidAppear中添加这行代码......

    [[UIApplication sharedApplication] setStatusBarHidden:NO];

因为当您取消选中HideStatusBar选项并且您的应用需要任何后台进程或音频相关进程时,状态栏将变为红色并且高度增大。如果您不想在整个应用程序中使用状态栏,则不要在viewDidAppear中添加上述行并选中HideStatusBar Option。