有时需要有导航栏但不想导航栏的高度挡住页面内容,并且不希望有导航栏下面的一根横线那么可以这样处理
- (void)setNavigationBarTransparent:(BOOL)transparent
animated:(BOOL)animated {
[UIView animateWithDuration:animated ? 0.33 : 0 animations:^{
if (transparent) {
[self.navigationBar setBackgroundImage:[UIImage new]
forBarMetrics:UIBarMetricsDefault];
self.navigationBar.shadowImage = [UIImage new];
self.navigationBar.translucent = YES;
self.view.backgroundColor = [UIColor clearColor];
self.navigationBar.backgroundColor = [UIColor clearColor];
} else {
[self.navigationBar setBackgroundImage:nil
forBarMetrics:UIBarMetricsDefault];
}
}];
}
以下所述的所有方法都是针对于iOS8.0之后对于navigationBar的一些设置,尤其是当使用继承自UIScrollView的控件时,有时候经常要针对于navigationBar做出一些设置,不多说上方法:
1,self.navigationController.hidesBarsOnSwipe = YES ;
当tableView等滑动的时候是否隐藏navigationBar,YES表示隐藏,NO表示不隐藏。
2,self.navigationController.hidesBarsOnTap = YES ;
当视图接受点击的时候是否隐藏navigationBar,YES表示隐藏,NO表示不隐藏。
3,self.navigationController.hidesBarsWhenKeyboardAppears = YES ;
当键盘出现的的时候是否隐藏navigationBar,YES表示隐藏,NO表示不隐藏。
4,self.navigationController.hidesBarsWhenVerticallyCompact = YES ;
当屏幕的方向改变的时候是否隐藏navigationBar,YES表示隐藏,NO表示不隐藏。
5,self.navigationController.hidesBottomBarWhenPushed = YES ;
当视图被push(就是nav的push)完之后是否隐藏底层的bar,YES表示隐藏,NO表示不隐藏。