(七十)Xcode5及以上对于状态栏和导航栏样式的设定方法

【状态栏】

在Xcode5以前,状态栏是通过UIApplication单例来管理的,而在此后,默认情况下状态栏通过控制器来管理,而且如果控制器有NavigationController,那么设置状态栏的操作在NavigationController中进行,调用的方法为:

- (UIStatusBarStyle)preferredStatusBarStyle;

如果要让状态栏仍然通过单例设定,可以在info.plist中加入一个键值:

View controller-based status bar appearance,值为NO即可。

这样就可以通过UIApplication单例来设置状态栏了:

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

【导航栏】

导航栏的主题属于全局设定,通过UINavigationBar的appearance拿到NavigationBar,再设置样式:

    UINavigationBar *navBar = [UINavigationBar appearance];
    NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
    attrs[NSForegroundColorAttributeName] = [UIColor whiteColor];
    attrs[NSFontAttributeName] = [UIFont systemFontOfSize:16];
    [navBar setTitleTextAttributes:attrs];

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-10 17:12:55

(七十)Xcode5及以上对于状态栏和导航栏样式的设定方法的相关文章

关于状态栏与导航栏的设置及自定义

关于状态栏和导航栏遇到的设置问题 1:statusBar字体为白色 在plist里面设置View controller-based status bar appearance 为 NO:设置statusBarStyle 为 UIStatusBarStyleLightContent 2:设置statusBar和navigationbar为一体 [nav.navigationBar setBackgroundImage:[UIImage imageNamed:@"bg_navbar.png"

改变状态栏和导航栏的透明度

如何实现这个半透明效果呢? 步骤一: 为UIImage类添加静态方法: extension UIImage { static func imageWithColor(color: UIColor) -> UIImage { let rect = CGRect(x: 0, y: 0, width: 1, height: 1) UIGraphicsBeginImageContext(rect.size) let context = UIGraphicsGetCurrentContext() CGCo

iOS 更改状态栏、导航栏颜色的几种方法

ios上状态栏 就是指的最上面的20像素高的部分状态栏分前后两部分,要分清这两个概念,后面会用到: 前景部分:就是指的显示电池.时间等部分:背景部分:就是显示黑色或者图片的背景部分: (一)设置statusBar的[前景部分] 简单来说,就是设置显示电池电量.时间.网络部分标示的颜色, 这里只能设置两种颜色: 默认的黑色(UIStatusBarStyleDefault)白色(UIStatusBarStyleLightContent)可以设置的地方有两个:plist设置里面 和 程序代码里初始化设

Android 4.4 沉浸式透明状态栏与导航栏

安卓4.4才有的沉浸式状态栏 在代码设置: if(VERSION.SDK_INT >= VERSION_CODES.KITKAT) { //透明状态栏 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); //透明导航栏 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); } 直接调用上面2行代码可以

android 自定义状态栏和导航栏分析与实现

效果 android 4.4之后,系统是支持自定义状态栏和导航栏的,举个最典型的例子就是bilibili客户端了(iOS版本和android版本能用两套完全不一样符合各自系统的设计ui,良心啊-),顶部状态栏为粉色,底部导航栏为半透明色: 接着QQ最新的版本6.2也使用了状态栏透明风格,但是出来的效果在不同版本,不同手机上,显示的效果真是差异很大(4.3版本是无法使用状态栏透明风格的,只是放出来做个对比): ------------------------------------ -------

Android隐藏状态栏、导航栏

Android隐藏状态栏.导航栏 [java] view plain copy private void hideStatusNavigationBar(){ if(Build.VERSION.SDK_INT<16){ this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); }else{ int uiFlags = View

iOS获取状态栏和导航栏尺寸(宽度和高度)

iPhone开发当中,有时需要获取状态栏和导航栏高度.宽度信息,方便布局其他控件.下面介绍一下如何获取这些信息: // 状态栏(statusbar) CGRect rectStatus = [[UIApplication sharedApplication] statusBarFrame]; NSLog(@"status width - %f", rectStatus.size.width); // 宽度 NSLog(@"status height - %f", r

对系统版本为4.4及以上的开启 透明状态栏和导航栏(即沉浸式状态栏)

/*对系统版本为4.4及以上的开启 透明状态栏和导航栏(即沉浸式状态栏)*/ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Window window = getWindow(); // Translucent status bar window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FL

【转】iPhone获取状态栏和导航栏尺寸(宽度和高度)

原文网址:http://blog.csdn.net/chadeltu/article/details/42708605 iPhone开发当中,有时需要获取状态栏和导航栏高度.宽度信息,方便布局其他控件.下面介绍一下如何获取这些信息: [objc] view plain copy // 状态栏(statusbar) CGRect rectStatus = [[UIApplication sharedApplication] statusBarFrame]; NSLog(@"status width