您所在的位置:小祥子 » 编程 » IOS » 正文

iOS阶段学习第31天笔记(UINavigationBar)

时间:2015-08-02 编辑:湖南金刚 来源:Cnblogs

IOS学习(UI)知识点整理

 

一、UINavigationBar 的介绍

1)概念:UINavigationBar 是用于定义导航栏按钮的一个类对象

2)在使用UINavigationBar之前必须先初始化导航栏 实例代码:

 //初始化导航栏
 FirstViewController *firstVC = [[FirstViewController alloc] init];
 UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:firstVC];
 self.window.rootViewController = nav;
 
 //appearance一定要在初始化之前使用
 //修改默认的UINavigationBar的导航条背景颜色,
 [[UINavigationBar appearance] setBarTintColor:[UIColor yellowColor]];
 
 //修改默认的导航栏文字即图标颜色
 [[UINavigationBar appearance] setTintColor:[UIColor blackColor]];
     
 //设置导航栏背景图片
 [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"icon"]   forBarMetrics:UIBarMetricsDefault];

  
3)setNavigationBarHidden 设置隐藏导航栏  例如:

 [self.navigationController setNavigationBarHidden:YES];

 
4)title 设置导航栏标题  例如:

 self.title = @“First View”;
 //注意:在一处做此设置后,后面的视图控制器如未作设置也会使用此标题

 
5)titleView 用于设置导航栏中间的视图 例如:

    UIView *navBarView = [[UIView alloc] init];
     navBarView.frame = CGRectMake(0, 0, 100, 30);
     navBarView.backgroundColor = [UIColor clearColor];
     navBarView.layer.cornerRadius = 8.0f;
     navBarView.clipsToBounds = YES;
     
     UIButton *btn1 = [[UIButton alloc] init];
     btn1.frame = CGRectMake(0, 0, 50, 30);
     btn1.backgroundColor = [UIColor blueColor];
     [btn1 setTitle:@"消息" forState:UIControlStateNormal];
     [btn1 addTarget:self action:@selector(btn1Tapped:)  forControlEvents:UIControlEventTouchUpInside];
     btn1.tag = 1000;
     [navBarView addSubview:btn1];
     
     UIButton *btn2 = [[UIButton alloc] init];
     btn2.frame = CGRectMake(50, 0, 50, 30);
     btn2.backgroundColor = [UIColor blueColor];
     [btn2 setTitle:@"电话" forState:UIControlStateNormal];
     [btn2 addTarget:self action:@selector(btn1Tapped:) forControlEvents:UIControlEventTouchUpInside];
     btn2.tag = 1001;
     [navBarView addSubview:btn2];
 
     //在导航栏中的中间位置加入我们自定义的view,
     //程序会把我们设置的view自动居中
     self.navigationItem.titleView = navBarView;

6)UIBarButtonItem 导航栏上的按钮元素  常用的系统自带的Bar有

/*
* UIBarButtonSystemItemDone  按钮样式为文字Done、
* UIBarButtonSystemItemAdd 按钮样式为图片的加号
*UIBarButtonSystemItemCamera 按钮样式是图片的照相机
     
*UIBarButtonSystemItemFixedSpace 是一个占位符 ,可以设置width
*UIBarButtonSystemItemFlexibleSpace 是一个占位符,固定宽度,导航栏上单独一个按钮
*/

例如:

 //系统自带照相机按钮
 UIBarButtonItem *button1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera
target:self action:@selector(barButtonTapped:)]; //占位符按钮 UIBarButtonItem *button2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:self action:@selector(barButtonTapped:)];

7)rightBarButtonItem 设置导航栏右侧单个按钮 例如:

 self.navigationItem.rightBarButtonItem = button1;

8)rightBarButtonItems 设置导航栏右侧多个按钮 例如:

 self.navigationItem.rightBarButtonItems = @[button2, button1];

9)edgesForExtendedLayout 设置view的坐标都是从导航栏左下点开始计算 防止导航栏遮挡内容区域
例如:

 self.edgesForExtendedLayout = UIRectEdgeNone;

10)initWithTitle 使用文字作为导航栏按钮 例如:

 UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStylePlain
target:self action:@selector(back)];

 

11)initWithImage 使用图片作为导航栏按钮 例如:

 UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"st_logout"] 
style:UIBarButtonItemStylePlain target:self action:@selector(back)]; self.navigationItem.leftBarButtonItem = barButtonItem;

 
12)setToolbarHidden 设置导航栏显示与隐藏 例如:

  [self.navigationController setToolbarHidden:NO];

 

 
关键词:学习 笔记