ios最新设置状态栏字体颜色总结

摘要:
使用以下方法:1.在vc中重写vc的preferredStatusBarStyle方法-PreferredStatussBarStyle{returnUIStatusBarStyleDefault;}2.调用viewDidload:[selfsetNeedsStatusBarAppearanceUpdate];然而,当vc在nav中时,上述方法是无用的。根本不需要调用vc中的preferredStatusBarStyle方法。原因是,在发出[selfsetNeedsStatusBarAppearanceUpdate]之后,将只调用导航控制器中的preferredStatusBarStyle方法,而不会调用vc中的PreferredStatussBarStyle方法。有两种解决方案:方法1:设置导航栏的barStyle属性将影响statusbar的字体和背景色//statusbar字体为白色//导航栏的背景色为黑色。
状态栏的字体为黑色:UIStatusBarStyleDefault

状态栏的字体为白色:UIStatusBarStyleLightContent

一、在info.plist中,将View controller-based status bar appearance设为NO

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

// default is UIStatusBarStyleDefault

[UIApplication sharedApplication].statusBarStyle

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

1、在info.plist中,将View controller-based status bar appearance设为NO.

2、在app delegate中:

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

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

-(void)viewWillAppear:(BOOL)animated{

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;

}

-(void)viewWillDisappear:(BOOL)animated

{

[super viewWillDisappear:animated];

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

}

二、在info.plist中,将View controller-based status bar appearance设为YES,或者没有设置。

View controller-based status bar appearance的默认值就是YES。

如果View controller-based status bar appearance为YES。

则[UIApplication sharedApplication].statusBarStyle 无效。

用下面的方法:

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

-(UIStatusBarStyle)preferredStatusBarStyle

{

return UIStatusBarStyleDefault;

}

2、在viewDidload中调用:[self setNeedsStatusBarAppearanceUpdate];

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

原因是,[self setNeedsStatusBarAppearanceUpdate]发出后,

只会调用navigation controller中的preferredStatusBarStyle方法,

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

解决办法有两个:

方法一:

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

//status bar的字体为白色

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

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

//status bar的字体为黑色

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

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

方法二:

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

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

self.window.rootViewController = nav;

@implementation MyNav

- (UIStatusBarStyle)preferredStatusBarStyle

{

UIViewController* topVC = self.topViewController;

return [topVC preferredStatusBarStyle];

}

免责声明:文章转载自《ios最新设置状态栏字体颜色总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇winform 父窗体与子窗体数据传递bzoj3110 [Zjoi2013]K大数查询下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Notification使用以及PendingIntent.getActivity() (转)

public void sendNotification(Context ctx,String message) { //get the notification manager String ns = Context.NOTIF...

iOS状态栏详解(隐藏)

状态栏的隐藏 状态栏的隐藏主要有两种方法:方法一:通过代码控制 @interface UIApplication(UIApplicationDeprecated) // Setting statusBarHidden does nothing if your application is using the default UIViewControl...

点击状态栏回到顶部两种实现

1.局部设置 scrollView有个属性scrollsToTop,默认值为YES. 所以默认情况下点击状态栏就可以回到顶部。但当一个控制器中有多个scrollView或其子类时,因为默认值都是YES,所以系统不知道要让哪个scrollView回到顶部。所以要让需要回到顶部的scrollView.scrollsToTop = YES,而其他的scrollV...

在PyQt中构建 Python 菜单栏、菜单和工具栏

摘要:菜单、工具栏和状态栏是大多数GUI 应用程序的常见且重要的图形组件。您可以使用它们为您的用户提供一种快速访问应用程序选项和功能的方法。 本文分享自华为云社区《Python 和 PyQt:创建菜单、工具栏和状态栏》,作者:Yuchuan。 在使用 Python 和PyQt开发图形用户界面 (GUI)应用程序时,您将使用的一些最有用和最通用的图形元素是...

Vue和微信小程序区别

一、生命周期 先贴两张图: vue生命周期 小程序生命周期 相比之下,小程序的钩子函数要简单得多。 vue的钩子函数在跳转新页面时,钩子函数都会触发,但是小程序的钩子函数,页面不同的跳转方式,触发的钩子并不一样。 onLoad: 页面加载一个页面只会调用一次,可以在 onLoad 中获取打开当前页面所调用的 query 参数。 onShow: 页...

VS2019 实用设置

本文记录了 VS2019 预览版使用过程中的一些设置,这些设置也同样适用于 VS2017,我们可以根据个人的实际情况进行修改。 滚动条(Scroll Bar) 将滚动条设置为 map mode 后,则该区域会显示当前整个文件的缩略示图,能够以不同的颜色显示当前文件中的修改状态、错误、警告等信息,便于对当前文件有个全局的认识。在 VS2010 中需要使用...