十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1.状态栏在普通iPhone上高度是20.但是在iPhone X上是44.
成都创新互联公司长期为成百上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为三门峡企业提供专业的网站建设、成都网站制作,三门峡网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。
* 注意:iPhoneX导航栏高度是 44 + 44
2.状态栏字体颜色:
2.1:黑色: UIStatusBarStyleDefault (默认)
2.2:白色: UIStatusBarStyleLightContent
方法一 : 在 info.plist 中,将 View controller-based status bar appearance 设为 NO
1.全局的设置 在app delegate中设置状态栏颜色:
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
2.全局隐藏状态栏(会往上移动状态栏的高度,一般不会全局隐藏它)
[UIApplication sharedApplication].statusBarHidden = YES;
方法二:
在 info.plist 中,将 View controller-based status bar appearance 设为 YES (默认值就是YES),或者没有设置。 (建议使用方法一,这个方法我没用过)
如果值为YES。方法一的设置方法则无效,用下面方法
//在基类的Navigation中设置全局颜色,但是隐藏nav的颜色会不更改
//在VC中设置
//获取高度,然后在特殊界面根据状态栏高度适配
//statusBar高度
链接2
状态栏的字体为黑色:UIStatusBarStyleDefault
状态栏的字体为白色:UIStatusBarStyleLightContent
状态栏字体的颜色只由下面的属性设定,默认为白色:
解决个别vc中状态栏字体颜色不同的办法
在info.plist中 View controller-based status bar appearance 的 默认值就是YES
如果View controller-based status bar appearance为YES 时 [UIApplication sharedApplication].statusBarStyle 无效。
解决方案:
当vc在nav中时,上面方法没用,vc中的preferredStatusBarStyle方法根本不用被调用。
原因是,[self setNeedsStatusBarAppearanceUpdate]发出后,只会调用navigation controller中的preferredStatusBarStyle方法,vc中的preferredStatusBarStyley方法跟本不会被调用。
解决办法有两个:
1.View controller-based status bar appearance = NO
2.View controller-based status bar appearance = YES
3.设置Status bar is initially hidden = YES
- ( void )viewDidAppear:( BOOL )animated {
[ super viewDidAppear:animated];
UIView*statusBarView;
if ( @available (iOS13.0, *)) {
statusBarView = [[UIView alloc] initWithFrame:[UIApplication sharedApplication].keyWindow.windowScene.statusBarManager.statusBarFrame];
statusBarView.backgroundColor= [UIColorcolorWithHexString:@"#5a9eff"];
[[UIApplication sharedApplication].keyWindow addSubview:statusBarView];
} else {
statusBarView= [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
if ([statusBarViewrespondsToSelector: @selector (setBackgroundColor:)]) {
statusBarView.backgroundColor= [UIColorcolorWithHexString:@"#5a9eff"];
};
}
}