iOS 状态栏不会一直亮

Posted

技术标签:

【中文标题】iOS 状态栏不会一直亮【英文标题】:iOS Status Bar Won't Stay Light 【发布时间】:2014-03-20 20:21:16 【问题描述】:

在我的 App Delegate 中,我有以下代码,但它在导航栏上方保持完全黑暗,您看不到任何东西。如果我删除导航栏的背景图像,它会正确地将其显示为浅色内容,但我不确定当它出现时会被什么阻挡。 UINavigationBar 的背景图片为 320x44。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions


    UIImage *theBackground = [[UIImage imageNamed:@"navbar.png"]resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];;
    if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_ios_6_1) 
        // Load resources for iOS 6.1 or earlier
       // UIColor *purple = UIColorFromRGB(0x95cdde);
        [[UINavigationBar appearance] setBackgroundImage:theBackground forBarMetrics:UIBarMetricsDefault];



     else 
        // Load resources for iOS 7 or later
       // UIColor *purple = UIColorFromRGB(0x95cdde);

        [[UINavigationBar appearance] setBackgroundImage:theBackground forBarMetrics:UIBarMetricsDefault];

    
    window.rootViewController = tabBarController;
    [window makeKeyAndVisible];
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

    return YES;

这是导航栏图片

【问题讨论】:

【参考方案1】:

好的,这就是我的理解。如果我错了,希望有人纠正我。 在 iOS 7 中,导航栏背景图片也延伸到状态栏下方。所以很有可能是导航栏背景图片挡住了状态栏。

在我的应用程序中,我遇到了同样的问题。我有一个图像选择器,在推动该控制器时,状态栏内容变暗。以下代码为我解决了这个问题

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent
                                            animated:NO];

我还必须将 UIViewController 设置为 UINavigationControllerDelegate

【讨论】:

对我没有任何改变。 背景图主要是什么颜色的? 有点暗...将背景图片添加到原始帖子中。 我注意到这个应用程序与其他应用程序最大的不同是,以前,NavigationController 中的 UIViews 的帧数为 0,64,320,508。这个视图有 0,0,320,568,这意味着视图涵盖了所有内容。不过它是灰色的,我不能更改它。【参考方案2】:

发现这篇文章http://blog.jaredsinclair.com/post/61507315630/wrestling-with-status-bars-and-navigation-bars-on-ios-7 帮助我找出了我的问题。需要在我的 plist 中添加这个

基于 ViewController 的状态栏外观并将其设置为 NO

【讨论】:

以上是关于iOS 状态栏不会一直亮的主要内容,如果未能解决你的问题,请参考以下文章

单击状态栏不会滚动到应用程序顶部(Trigger.io)

状态栏不会在 iOS 7 应用程序的放大版本中消失

iOS 14获取iPhone的状态栏高度方法

iOS - 14、15 iPhone苹果手机的状态栏高度

状态栏不会消失

PhoneGap 2.7 在状态栏中显示活动指示器