UINavigationBar属性的设置

想要改变Bar的背景颜色可以这样设置

self.navigationController.navigationBar.barTintColor = [UIColor redColor];

取消半透明效果可以这样设置(默认是YES半透明的,设置成NO就是不透明)

self.navigationController.navigationBar.translucent = NO;

这样设置可以改变navigationBar标题Title的颜色,同理也可以改变其字体大小

NSDictionary *dic = [NSDictionary dictionaryWithObject:[UIColor blackColor]   forKey:NSForegroundColorAttributeName];
self.navigationController.navigationBar.titleTextAttributes = dic;

当想隐藏NavigationBar的时候可以进行如下设置

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:animated];
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:animated];
}

想要改变navigationBar的前景颜色,也就是所有UIBarButtonItem的字体颜色可以如下设置

self.navigationController.navigationBar.tintColor = [UIColor redColor];

你也可以设置单个的navigationItem的标题颜色,如leftBarButtonItem或者rightBarButtonItem的标题颜色

self.navigationItem.leftBarButtonItem.tintColor = [UIColor grayColor];

想要改变左右两边的按钮,即rightBarButtonItem或者leftBarButtonItem按钮的字体大小时,就需要用到UIBarButtonItem.当然,这里也可以改变返回按钮的字体颜色,当这里也对字体颜色进行设置,这些内容通常写在+initialize方法里

UIBarButtonItem *item = [UIBarButtonItem appearance];
//在这里可以改变rightBarButtonItem或者leftBarButtonItem按钮的字体颜色
item.tintColor = [UIColor redColor];
 // 设置rightBarButtonItem或者leftBarButtonItem按钮字体大小
NSMutableDictionary * atts = [NSMutableDictionary dictionary];
atts[NSFontAttributeName] =[UIFont systemFontOfSize:30];
//这里也能改变rightBarButtonItem或者leftBarButtonItem按钮的字体颜色
//atts[NSForegroundColorAttributeName] = [UIColor colorWithRed:0.42f green:0.33f blue:0.27f alpha:1.00f];
// 将字典给item
[item setTitleTextAttributes:atts forState:UIControlStateNormal];

有的时候没有自定义返回按钮,但是用系统的返回按钮的时候又会有上一个控制器的标题,可以进行如下设置

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];

当我们在自定义了UINavigationController的时候,就不用self.NavigationController了,直接获取到UINavigationBar进行设置更简单,具体如下

UINavigationBar *bar = [UINavigationBar appearance];
//得到bar之后就可以进行设置了
bar.barTintColor = [UIColor greenColor];

在iOS8之后,苹果又为UINavigationBar添加了一些其他的设置,尤其是当使用继承自UIScrollView控件的时候,使用这些设置就显得更加方便

1、当tableView等滑动时是否隐藏navigationBar,YES表示隐藏,NO表示不隐藏
self.navigationController.hidesBarsOnSwipe = YES;
2、当视图接受点击时是否隐藏navigationBar,YES表示隐藏,NO表示不隐藏
self.navigationController.hidesBarsOnTap = YES;
3、当键盘出现时是否隐藏navigationBar,YES表示隐藏,NO表示不隐藏
self.navigationController.hidesBarsWhenKeyboardAppears = YES;
4、当屏幕方向改变时是否隐藏navigationBar,YES表示隐藏,NO表示不隐藏
self.navigationController.hidesBarsWhenVerticallyCompact = YES;
5、当视图被push完之后是否隐藏navigationBar,YES表示隐藏,NO表示不隐藏
self.navigationController.hidesBottomBarWhenPushed = YES;

你可能感兴趣的:(UINavigationBar属性的设置)