• NavigationBar &UINavigationItem& toolbar方法汇总


    NavigationBar的使用

    1.//通过导航控制器的setNavigationBarHidden方法隐藏导航条

        [self.navigationControllersetNavigationBarHidden:YES];

    2.//导航控制器中的导航条尺寸固定(320*44

    3.//拿到导航条的方法

        //self.navigationController.navigationBar

    4.//设置导航条的风格(黑色风格,默认为Defautl风格,iOS7以后,余下的三个样式几乎没有差别),设置导航条的风格样式会波及到状态栏

        //iOS7以前,设置导航条的样式不会影响状态栏

        self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

    5.//开发中应用做多的(设置导航条的背景图片)

        //UIBarMetricsDefault 对应iPhone竖屏(人像模式)

        //UIBarMetricsLandscapePhone 对应iPhone横屏(风景模式)

    6. //图片尺寸严格为(320*44640*88视网膜屏)//图片严格遵守320*44的尺寸,贴图不会波及到状态栏,而且状态栏会自动呈现出最初的样式

        [self.navigationController.navigationBarsetBackgroundImage:[UIImageimageNamed:@"navigationbar"] forBarMetrics:UIBarMetricsDefault];

        //横屏导航栏的尺寸(480*32)(风景模式)

        [self.navigationController.navigationBarsetBackgroundImage:[UIImageimageNamed:@"nav-32"] forBarMetrics:UIBarMetricsLandscapePhone];

    UINavigationItem(用于定制导航条上内容的显示)

    1.//通过navigationItem设置导航条上显示的标题

        self.navigationItem.title = @"root";

    2.//设置导航条上显示的标题视图

    将导航条的titleView设置成一个view

    self.navigationItem.titleView = titleView;

    3.UIBarButtonItem的对象有多种创建方式

    //    //通过初始化标题的方法

    //    //UIBarButtonItemStylePlain (iOS7中将Item的圆角矩形和边框全部去掉了)

    //    //UIBarButtonItemStylePlain (iOS7中将Item的圆角矩形和边框全部去掉了)

    4.////    //显示在导航条的左侧

        self.navigationItem.leftBarButtonItem = item;

    5.//    //用系统提供的样式初始化得到UIBarButtonItem的对象

        UIBarButtonItem *item1 = [[UIBarButtonItemalloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCameratarget:selfaction:@selector(rightItemClicked:)];

    6.//    //开发中最常用的创建UIBarButtonItem的方法 initWithCustomView(接收UIView)最常用的接收一个UIButtoncustom样式,贴图)

    UIButton *customBtn = [UIButtonbuttonWithType:UIButtonTypeCustom];

        [customBtn setFrame:CGRectMake(0, 0,30,30)];

        [customBtn setBackgroundImage:[UIImageimageNamed:@"itemImage"] forState:UIControlStateNormal];

        [customBtn addTarget:self action:@selector(custombtnClicked) 

    forControlEvents:UIControlEventTouchUpInside];

    //上边是创建一个自定义的按钮   下边这一句是将创建的button作为customView赋值给barbuttonitem

        UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithCustomView:customBtn];

    7.//    //会在导航条上从右到左显示

        NSArray *array = [NSArray arrayWithObjects:item1,item2,nil];

        [item1 release];

        [item2 release];

    //    //rightBarButtonItems 数组 设置一组UIBarButtonItem的显示,数组的元素必须是UIBarButtonItem的对象

        self.navigationItem.rightBarButtonItems = array;

    8.判断一个类中是否有某个方法

      //判断_delegate中是否支持sendTitle:方法

    if ([ respondsToSelector:@selector(sendTitle:)])

    toolbar(工具栏)

    1.//每个导航控制器都有一个工具栏,是一个UIToolBar的对象,显示在最底部,尺寸(320*44,工具栏默认处于隐藏状态

    //显示工具栏

        [self.navigationControllersetToolbarHidden:NO];

    2. //UIToolbarPositionBottom 理解(每个UIView都可以指定TopBar BottomBar,导航控制器中工具栏是作为导航控制器viewBottomBar被自动创建出来的

        [self.navigationController.toolbarsetBackgroundImage:[UIImageimageNamed:@"toolBar.png"] forToolbarPosition:UIToolbarPositionBottombarMetrics:UIBarMetricsDefault];

    3. UIBarButtonItem *item1 = [[UIBarButtonItemalloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAddtarget:selfaction:@selector(itemClicked)];

        UIBarButtonItem *item2 = [[UIBarButtonItemalloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdittarget:selfaction:@selector(itemClicked)];

        //UIBarButtonSystemItemFlexibleSpace (创建出来的为看不见的间隔按钮,间隔的数值会根据设定自动计算出来,等距的间隔)

        UIBarButtonItem *space  = [[UIBarButtonItemalloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpacetarget:selfaction:@selector(itemClicked)];

        NSArray *array = [NSArray arrayWithObjects:space,item1,space,item2,space,nil];

        [item1 release];

        [item2 release];

        [space release];

        self.toolbarItems = array;

        //开发中,底部工具栏往往自己通过UIView+UIButton定制

  • 相关阅读:
    20180925-3 效能分析
    20180925-7 规格说明书-吉林市2日游
    20180918博客作业
    第二周例行报告
    2018091-2博客作业
    容器(list集合)
    给应届生们的建议(一定要看哦)!
    MySQL 和 JDBC(Java数据库连接)
    Oracle常用数据库对象(片段)
    7353. 【2021.11.06NOIP提高A组模拟】qaq (qaq)
  • 原文地址:https://www.cnblogs.com/AbelChen1991/p/3587661.html
Copyright © 2020-2023  润新知