美文网首页
UINavigationBar的使用方法

UINavigationBar的使用方法

作者: 滴兜滴兜 | 来源:发表于2017-05-31 17:26 被阅读0次

    NavigaitonBar是导航栏,位于屏幕的上方,管理整个NavigationController的navigationItem

    1.设置标题:

    //创建一个导航控制器

    UINavigationController *rootNavigationController = [[UINavigationController alloc] init];

    UIViewController *vc2=[[UIViewController alloc]init];

    vc2.view.backgroundColor=[UIColor blueColor];

    vc2.navigationItem.title=@"蓝色";

    2.设置导航背景色:

    UIViewController *vc3=[[UIViewController alloc]init];

    vc3.view.backgroundColor=[UIColor yellowColor];

    //设置导航栏的颜色,由于三个页面使用同一个导航栏,颜色统一被修改

    vc3.navigationController.navigationBar.barTintColor=[UIColor grayColor];

    barTintColor: 这个属性需要在iOS7以上才可以使用; 如果要支持iOS6以及以下的系统,可以参考这篇文章:UINavigationBar Background Color

    效果:

    3.设置导航背景

    [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"Background"]forBarMetrics:UIBarMetricsDefault];

    在这里得稍微说说UIBarMetrics这个枚举, 它主要是用来控制在不同状态下导航栏的显示。和UIButton的

    - (void)setBackgroundImage:(nullable UIImage *)image forState:(UIControlState)state 这个方法有点类似。

    //表示横屏竖屏都显示

    UIBarMetricsDefault,

    //表示在只横屏下才显示,和UIBarMetricsLandscapePhone功效一样,不过iOS8已经弃用了

    UIBarMetricsCompact,

    UIBarMetricsDefaultPrompt和UIBarMetricsCompactPrompt这两个我还没搞清楚是什么意思,有知道的朋友不妨给我们来普及一下。。

    4.设置状态栏的颜色(字体颜色)

    从效果图可以看出,我们设置背景色或者背景图之后,状态栏依然还是默认的黑色,这样感觉不好看。好在,系统给我们提供了UIStatusBarStyleDefault和UIStatusBarStyleLightContent两种样式供我们选择。

    UIStatusBarStyleDefault,系统的默认样式,黑色内容,用于浅色的背景(如白色)

    UIStatusBarStyleLightContent 白色内容,用于深色的背景(如红色)

    下面来看看具体怎么实现,主流的实现方式是分两步:

    在工程的Info.plist文件中添加一行UIViewControllerBasedStatusBarAppearance,选择Boolean类型,并设置为YES,Xcode会自动把名称变为View controller-based status bar appearance。

    在你的ViewController中添加下面的方法

    -(UIStatusBarStyle)preferredStatusBarStyle{

    return UIStatusBarStyleLightContent;

    }

    相关文章

      网友评论

          本文标题:UINavigationBar的使用方法

          本文链接:https://www.haomeiwen.com/subject/wsejfxtx.html