更改状态栏颜色Objective-C

pil*_*lou 8 xcode objective-c ios

在我的应用程序中,有一个黑暗模式,我想知道如何更改状态栏颜色?谢谢,

UIColor *color = [UIColor whiteColor];
self.navigationController.navigationBar.barTintColor = color;
Run Code Online (Sandbox Code Playgroud)

Ron*_*ara 18

可以在didFinishLaunchingWithOptions方法中的代码行下方AppDelegate.m可以帮助:

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

UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];

if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {

    statusBar.backgroundColor = [UIColor whiteColor];//set whatever color you like
}
Run Code Online (Sandbox Code Playgroud)

  • 不要这样做,这是一种黑客行为,可能会导致您的应用程序因使用私有 api 而被拒绝 (2认同)

Joe*_*zon 6

好的,根据Apple Docs setStatusBarStyle:animated:自 iOS 9.0 起已弃用,您现在应该改为使用以下代码:

-(UIStatusBarStyle)preferredStatusBarStyle 
{
return UIStatusBarStyleLightContent;
}
Run Code Online (Sandbox Code Playgroud)

祝你好运,编码愉快!:)


Swe*_*hmi 5

在 plist 中添加这些行

<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
Run Code Online (Sandbox Code Playgroud)