ios开发状态栏颜色,ios顶部状态栏白色

iOS 状态栏更改颜色

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

iOS 更改状态栏颜色和隐藏状态栏

状态栏的字体为黑色: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

iOS 改变状态栏颜色

- ( 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"];

  };

}

}


分享名称:ios开发状态栏颜色,ios顶部状态栏白色
转载来于:http://azwzsj.com/article/dsddico.html