UINavigationController 导航控制器
1配置导航栏 (NavigationBar)
高度:算上状态栏 64个点 (状态栏 20 个点)
内容:通过navigationItem属性来完成设置 (navigationItem设置的是每个界面上导航栏中的内容)
左 leftBarButtonItem / leftBarButtonItems
中 title / title View
右 rightBarButtonItem / rightBarButtonItems
2配置工具栏 (ToolBar)
位于底部,默认隐藏,高度 44个点
通过修改 navigationController.toolBarHidden = NO 即可显示
toolBar中可以通过 toolBarItems 的属性,设置按键,位置不分左 中 右, 可以用木棍 和 弹簧特效来调整位置
首先我们需要知道导航控制器分为navigationBar 还有toolBar 下面我们来一起看一下相关内容
界面1,NavigationBar
- (void)viewDidLoad {
[super viewDidLoad];
//中间
// self.navigationItem.title = @"视图控制器";
//中间是一个 绿色的view 宽 150 高 40
UIView *myView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 150, 40)];
myView.backgroundColor = [UIColor greenColor];
self.navigationItem.titleView = myView;
//导航栏右侧
UIBarButtonItem *rightItem1 = [[UIBarButtonItem alloc]initWithTitle:@"编辑" style:UIBarButtonItemStylePlain target:self action:@selector(edit:)];
UIBarButtonItem *rightItem2 = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:nil action:nil];
// self.navigationItem.rightBarButtonItem = rightItem1;
self.navigationItem.rightBarButtonItems = @[rightItem1, rightItem2];
//导航栏左侧
UIImage *image = [UIImage imageNamed:@"60"];
//通过image对象 生成一个 不受tintColor影响 leftImage
UIImage *leftImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIBarButtonItem *leftItem = [[UIBarButtonItem alloc]initWithImage:leftImage style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.leftBarButtonItem = leftItem;
//如果修改navigationBar 的外观 该导航下所有子控制器都会跟着修改
self.navigationController.navigationBar.tintColor = [UIColor greenColor];
//设置导航栏 背景
//self.navigationController.navigationBar.barTintColor = [UIColor greenColor];
//设置 背景 不透明 NO 为不透明
//self.navigationController.navigationBar.translucent = NO;
//设置导航条 样式
self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
}
-(void)edit:(UIBarButtonItem*)sender {
NSLog(@"编辑内容");
[self.navigationController pushViewController:[[MyViewController alloc]init] animated:YES];
}
界面效果如下:
跳转到界面2,主要来看toolBar
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor redColor];
UIBarButtonItem *leftItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:nil action:nil];
self.navigationItem.leftBarButtonItem = leftItem;
self.navigationItem.title = @"MyVC";
//设置导航title 垂直位置
[self.navigationController.navigationBar setTitleVerticalPositionAdjustment:20 forBarMetrics:UIBarMetricsDefault];
//设置导航title 的字体
NSMutableDictionary *attributes = [[NSMutableDictionary alloc]init];
//设置字的颜色
attributes[NSForegroundColorAttributeName] = [UIColor blueColor];
//设置字体
attributes[NSFontAttributeName] = [UIFont systemFontOfSize:36];
[self.navigationController.navigationBar setTitleTextAttributes:attributes];
//ToolBar
//将工具栏显示出来
self.navigationController.toolbarHidden = NO;
//向 toobar 上添加 barButtonItem 按键
UIBarButtonItem *item1 = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:nil action:nil];
UIBarButtonItem *item2 = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemStop target:nil action:nil];
UIBarButtonItem *item3 = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:nil action:nil];
//创建木棍
UIBarButtonItem *fixItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
fixItem.width = 50;
//创建弹簧
UIBarButtonItem *flexible = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
self.toolbarItems = @[fixItem,item1, fixItem, item2,flexible, item3 , fixItem];
}
效果如下:
可以继续参考下一篇微博,实现点击隐藏,点击显示的效果:
http://blog.youkuaiyun.com/lee727n/article/details/72567593