您现在的位置: 首页 > 微信营销 > 微信攻略文章 > 微信小程序底部导航背景色:iOS如何把所有界面的状态栏的字体颜色都设置为白色?

微信小程序底部导航背景色:iOS如何把所有界面的状态栏的字体颜色都设置为白色?

作者:pc668   来源:  热度:584  时间:2021-08-11
状态栏的字体为黑色微信小程序底部导航背景色:UIStatusBarStyleDefault状态栏的字体为白色:UIStatusBarStyleLightContent一、在info.plist中,将Viewcontroller-basedstatusbarappearance设为NO状态栏字体的颜色只由下面的属性设定,默认为白色://defaultisUIStatusBarStyleDefault[UIApplicationshared

状态栏的字体为黑色微信小程序底部导航背景色:UIStatusBarStyleDefault

状态栏的字体为白色:UIStatusBarStyleLightContent

一、在info.plist中,将Viewcontroller-basedstatusbarappearance设为NO

状态栏字体的颜色只由下面的属性设定,默认为白色:

//defaultisUIStatusBarStyleDefault

[UIApplicationsharedApplication].statusBarStyle

解决个别vc中状态栏字体颜色不同的办法

1、在info.plist中,将Viewcontroller-basedstatusbarappearance设为NO.

2、在appdelegate中:

[UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleLightContent;

3、在个别状态栏字体颜色不一样的vc中

-(void)viewWillAppear:(BOOL)animated{

[UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleDefault;

}

-(void)viewWillDisappear:(BOOL)animated

{

[superviewWillDisappear:animated];

[UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleLightContent;

}

二、在info.plist中,将Viewcontroller-basedstatusbarappearance设为YES,或者没有设置。

Viewcontroller-basedstatusbarappearance的默认值就是YES。

如果Viewcontroller-basedstatusbarappearance为YES。

则[UIApplicationsharedApplication].statusBarStyle无效。

用下面的方法:

1、在vc中重写vc的preferredStatusBarStyle方法。

-(UIStatusBarStyle)preferredStatusBarStyle

{

returnUIStatusBarStyleDefault;

}

2、在viewDidload中调用:[selfsetNeedsStatusBarAppearanceUpdate];

但是,当vc在nav中时,上面方法没用,vc中的preferredStatusBarStyle方法根本不用被调用。

原因是,[selfsetNeedsStatusBarAppearanceUpdate]发出后,

只会调用navigationcontroller中的preferredStatusBarStyle方法,

vc中的preferredStatusBarStyley方法跟本不会被调用。

解决办法有两个:

方法一:

设置navbar的barStyle属性会影响statusbar的字体和背景色。如下。

//statusbar的字体为白色

//导航栏的背景色是黑色。

self.navigationController.navigationBar.barStyle=UIBarStyleBlack;

//statusbar的字体为黑色

//导航栏的背景色是白色,状态栏的背景色也是白色。

//self.navigationController.navigationBar.barStyle=UIBarStyleDefault;

方法二:

自定义一个navbar的子类,在这个子类中重写preferredStatusBarStyle方法:

MyNav*nav=[[MyNavalloc]initWithRootViewController:vc];

self.window.rootViewController=nav;

@implementationMyNav

-(UIStatusBarStyle)preferredStatusBarStyle

{

UIViewController*topVC=self.topViewController;

return[topVCpreferredStatusBarStyle];

}

登录

使用微信帐号或QQ直接登录,无需注册