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 状态栏不会一直亮的主要内容,如果未能解决你的问题,请参考以下文章