Xcode隐藏白色状态栏ios 10
我想要我的应用程序中的白色状态栏。为此,我将View controller-based status bar appearance
设置为NO
和Status bar style
至UIStatusBarStyleLightContent
。但是现在我需要在一些视图控制器中隐藏状态栏。要隐藏它,我必须将View controller-based status bar appearance
设置为YES
并添加- (BOOL)prefersStatusBarHidden {return YES;}
。但状态栏现在是黑色的。当View controller-based status bar appearance
为YES
时为黑色,如果为NO
则为黑色。所以问题是,如何设置白色状态栏并隐藏它?Xcode隐藏白色状态栏ios 10
UPD: 代码在VC,我想有白色状态栏(prefferdSTatusBarStyle
不叫)
代码在VC以隐藏状态栏
的.plist设置
结果是黑色的状态栏,它隐藏在一些VC
UPD2:
我知道这是不好用不赞成的方法,但与[[UIApplication sharedApplication] setStatusBarHidden:YES];
一切工作,因为我想要的。如果有人有更好的解决方案,请让我知道。
,如果你的视图 - 控制嵌入的UINavigationController然后尝试在写这个代码的
-(BOOL)prefreStatusBarHidden
{
return [self.navigationController prefersStatusBarHidden];
}
这是SWIFT版本:
要隐藏状态栏或改变它的外观,你需要重写按照您的视图控制器本身
override var prefersStatusBarHidden: Bool{
return true
}
性能上面隐藏状态栏和下方,如果你想将它设置为白色:
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
你可以在你的基地的ViewController设置导航背景图片做到这一点。
UIImage *bgImage = [UIImage imageNamed:@"bg_navigationbar"];
[self.navigationController.navigationBar setBackgroundImage:bgImage forBarMetrics:UIBarMetricsDefault];
这只是错误的。应该删除。 –
在你的plist文件中添加View controller-based status bar appearance
Bool属性并将其设置为YES。
现在添加像下面的方法:
// TO MAKE STATUS BAR WHITE
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .LightContent
}
// TO MAKE STATUS BAR BLACK
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .LightContent
}
// RETURN TRUE TO HIDE AND FALSE TO SHOW STATUS BAR
override func prefersStatusBarHidden() -> Bool {
return true
}
对于Objective-C的
- (BOOL)prefersStatusBarHidden {
return NO;
}
-(UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
对于去除冗余代码,你可以做一个BaseViewController
为UIViewController
子类,并添加该类中的方法。并重写需要改变的类中的方法。
您必须在项目的每个视图控制器中显示“UIStatusBarStyleLightContent”? – Birendra
是的。所有视图控制器都应该带有白色状态栏 – Ossir
您是否找到解决方案? – OXXY