一躁垛、關于隱藏導航欄的幾個屬性姆涩、一下為默認值
self.navigationController.hidesBarsOnSwipe = NO;
self.navigationController.hidesBarsOnTap = NO;
self.navigationController.hidesBottomBarWhenPushed = NO;
self.navigationController.hidesBarsWhenKeyboardAppears = NO;
self.navigationController.hidesBarsWhenVerticallyCompact = NO;
1况凉、hidesBarsWhenKeyboardAppears
self.navigationController.hidesBarsWhenKeyboardAppears = YES; // 當鍵盤彈出的時候叹俏,導航欄自動隱藏,默認NO焦辅,注意:如果只設置這個屬性為YES,鍵盤出現(xiàn)的時候椿胯,導航欄就自動隱藏了筷登,但是之后無論怎么操作,導航欄都不會再顯示出來哩盲,所有需要配合hidesBarsOnSwipe或者hidesBarsOnTap使用前方,這樣的話,導航欄就能自如的隱藏和展示了
2廉油、hidesBarsOnSwipe
self.navigationController.hidesBarsOnSwipe = YES; // 上下滑動的時候惠险,導航欄自動隱藏和顯示
3、hidesBarsOnTap屬性抒线,
self.navigationController.hidesBarsOnTap = YES; // 點擊控制器的時候班巩,導航欄自動隱藏和顯示
4、hidesBarsWhenVerticallyCompact屬性嘶炭,
self.navigationController.hidesBarsWhenVerticallyCompact = YES; // 當導航欄的垂直size比較緊湊的時候抱慌,導航欄自動隱藏
5、hidesBottomBarWhenPushed屬性眨猎,
該屬性默認NO抑进,設置為YES的話,在導航欄push控制器的時候宵呛,自動將tabBar隱藏单匣,隱藏之后不會自動顯示出來,還需手動設置
二宝穗、向下滑動隱藏 navigationbar户秤、tabbar,向上滑動顯示
self.navigationController.hidesBarsOnSwipe = YES;滑動隱藏導航欄可直接使用這個屬性逮矛〖牛或者使用以下方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
//scrollView已經(jīng)有拖拽手勢,直接拿到scrollView的拖拽手勢
UIPanGestureRecognizer *pan = scrollView.panGestureRecognizer;
//獲取到拖拽的速度 >0 向下拖動 <0 向上拖動
CGFloat velocity = [pan velocityInView:scrollView].y;
if (velocity <- 5) {
//向上拖動须鼎,隱藏導航欄
self.tabBarController.tabBar.hidden = YES;
[self.navigationController setNavigationBarHidden:YES animated:YES];
}else if (velocity > 5) {
//向下拖動鲸伴,顯示導航欄
self.tabBarController.tabBar.hidden = NO;
[self.navigationController setNavigationBarHidden:NO animated:YES];
}else if(velocity == 0){
//停止拖拽
}
}