导航栏颜色及UIBarButtonItem 的设置
iOS7之后. 默认的返回按钮字体颜色是蓝色的, 显示内如是父VC(上一级界面)的title
如果要做修改, 可以通过下面的办法:
1. 修改字体颜色
(1) 在plist里面, 加上View controller-based status bar appearance, 并且设置为NO
(2) 在需要修改的那个界面. 加入如下代码(加在viewDIdLoad即可)
- 修改颜色
self.navigationController.navigationBar.barStyle. = UIStatusBarStyleDefault;
[self.navigationController.navigationBar setTintColor:[UIColor greenColor]];
修改文字内容
若 A—>B 即从A, push 到B, 返回按钮在B
则在A界面里面, 加入如下代码
UIBarButtonItem *backItem = [[UIBarButtonItem alloc] init];
backItem.title = @"哎呦喂";
self.navigationItem.backBarButtonItem = backItem;
则返回按钮的文字就会变成 “哎呦喂”
设置导航栏
• tintColor: 导航栏的按钮(如返回)颜色
• titleTextAttributes: 标题颜色
• barTintColor: 背景颜色
• translucent: 是否透明
1、在App delegate 设置导航栏的颜色,整个项目都设置成统一的颜色
[[UINavigationBar appearance] setBarTintColor:[UIColor redColor]]; // 设置所有导航栏的背景颜色
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]]; // 前景色(文字颜色)
2、修改导航栏字体大小和颜色,有两种方法可以实现这个功能
- 方法一:(自定义视图的方法,一般人也会采用这样的方式)
就是在导航向上添加一个titleView,可以使用一个label,再设置label的背景颜色透明,字体什么的设置就很简单了。
//自定义标题视图
UILabel *titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 200, 44)];
titleLabel.backgroundColor = [UIColor grayColor];
titleLabel.font = [UIFont boldSystemFontOfSize:20];
titleLabel.textColor = [UIColor greenColor];
titleLabel.textAlignment = NSTextAlignmentCenter;
titleLabel.text = @"新闻";
self.navigationItem.titleView = titleLabel;
- 方法二:(在默认显示的标题中直接修改文件的大小和颜色也是可以的)
[self.navigationController.navigationBar setTitleTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:19],NSForegroundColorAttributeName:[UIColor redColor]}];
方式二相对于方式一而言更加简单方便