在我的应用程序中,有一个黑暗模式,我想知道如何更改状态栏颜色? 谢谢,
UIColor *color = [UIColor whiteColor];
self.navigationController.navigationBar.barTintColor = color;
答案 0 :(得分: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
}
答案 1 :(得分:2)
一种简单有效的方法是向info.plist
添加属性,并将状态栏样式设置为UIStatusBarStyleLightContent
。
我们应该做的是:
info.plist
文件,然后添加属性UIViewControllerBasedStatusBarAppearance
并将其值设置为NO
接下来前往您的Appdelegate
或任何类文件,并使用以下代码:
UIApplication.sharedApplication.statusBarStyle = UIStatusBarStyleLightContent;
编写代码的另一种方法是:
[[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleLightContent];
答案 2 :(得分:2)
好的,根据Apple Docs setStatusBarStyle:animated:
自iOS 9.0以来已被弃用,您现在应该改为使用此代码:
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
祝你好运,编码愉快! :)
答案 3 :(得分:1)
Swift 3解决方案:
在需要非默认状态栏外观的视图控制器中,使用以下命令:
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
答案 4 :(得分:1)
在plist中添加这些行
DataSet<Row> (= DataFrame)
答案 5 :(得分:0)
这对我有用。
单击导航栏->样式->默认 然后选择“半透明”,然后在该“ Bar Tint”下方->(选择所需的任何颜色)
答案 6 :(得分:0)
自从iOS 13发布以来,我们不得不借助status bar
的新属性,将以下代码放置在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
if (@available(iOS 13.0, *)) {
UIView *statusBar = [[UIView alloc]initWithFrame:[UIApplication sharedApplication].keyWindow.windowScene.statusBarManager.statusBarFrame];
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
statusBar.backgroundColor = [UIColor whiteColor];
}
[[UIApplication sharedApplication].keyWindow addSubview:statusBar];
} else {
UIView *statusBar = [[UIView alloc]initWithFrame:[UIApplication sharedApplication].keyWindow.frame];
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
statusBar.backgroundColor = [UIColor whiteColor];
}
}
这可以解决在iOS 13中发生的崩溃并为其他iOS版本设置框架