【发布时间】:2014-03-16 15:31:28
【问题描述】:
我正在尝试在运行中更改状态栏颜色,即不是在加载控制器时。我更改了视图的背景颜色,因此我需要将其从黑色更改为白色,反之亦然。
我知道我可以使用preferredStatusBarStyle 和 plist 中的设置来更改它,但据我所知,这只会在第一次启动视图控制器时设置它。例如,当我按下按钮时,我想更改它。
我可以这样做吗?
【问题讨论】:
标签: objective-c ios7 statusbar
我正在尝试在运行中更改状态栏颜色,即不是在加载控制器时。我更改了视图的背景颜色,因此我需要将其从黑色更改为白色,反之亦然。
我知道我可以使用preferredStatusBarStyle 和 plist 中的设置来更改它,但据我所知,这只会在第一次启动视图控制器时设置它。例如,当我按下按钮时,我想更改它。
我可以这样做吗?
【问题讨论】:
标签: objective-c ios7 statusbar
转到您的应用程序 Plist 并将其添加为新行并将其设置为 NO。
View controller-based status bar appearance NO
添加一个布尔值来确定UIStatusBar 颜色的状态并添加一个切换方法
@property(nonatomic) BOOL black;
-(void)toggleStatuSBar:(id)sender{
if(black) {
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
black = NO;
}else {
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:YES];
black = YES;
}
}
这是一个示例截图
菜单关闭时,颜色为白色。
菜单打开时颜色为黑色
希望对您有所帮助。
【讨论】:
从 Swift 3 开始:
View controller-based status bar appearance NO
2.
白:UIApplication.shared.statusBarStyle = .lightContent
黑色:UIApplication.shared.statusBarStyle = .default
【讨论】: