1、导航栏设置的颜色和实际的颜色有差别
这里是因为导航栏默认是有透明度的,添加self.navigationController.navigationBar.translucent = NO; 将导航栏设置成不透明的即可。
2、设置导航栏背景颜色可以使用
[[UINavigationBar appearance] setBarTintColor:[UIColor redColor]];
默认带有一定透明效果,可以使用self.navigationController.navigationBar.translucent = NO;去除系统效果
3、改变导航栏的字体颜色(只改变导航的颜色,不改变状态栏的)
[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor redColor]}];
4、将状态栏和导航栏字体全变为白色
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
5、改变导航栏字体大小
[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor redColor],NSFontAttributeName:[UIFont systemFontOfSize:25]}];
6、为导航栏设置背景图片
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"image"] forBarMetrics:UIBarMetricsDefault];
7、导航栏透明
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]
self.navigationController.navigationBar.shadowImage = [UIImage new];
8、导航栏设置透明后,在设置为不透明
[self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:nil];
9、将导航栏标题修改为一个图片或者logo
self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo"]];
10、隐藏返回按钮的返回两个字
UIBarButtonItem *item = [UIBarButtonItem appearance];
[item setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];
11、修改导航栏返回箭头图片 (全局的),必须要两个都设置,并且图片要设置成不渲染
UINavigationBar * bar = [UINavigationBar appearance];
bar.backIndicatorTransitionMaskImage = [UIImage imageNamed:@"back"];
bar.backIndicatorImage = [UIImage imageNamed:@"back"];
12、修改导航栏返回箭头和文字的颜色
self.navigationController.navigationBar.tintColor = [UIColor redColor];
13、使用UINavigationController时,push到的子页面,左上角会是系统自动取值上一层父页面的title名称。在push前通过设置navigationItem的backBarButtonItem可以直接更换文字
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = item;
网友评论