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定制

 

posted on 2014-03-08 11:08  chenhanqing_blcu  阅读(530)  评论(0编辑  收藏  举报