UITableView 继承于UIScrollView
所以UIScrollView 的代理方法相同适用于UITableView 中 隐藏导航栏的方法为:self.navigationController.navigationBar.hidden = YES;
所以我们仅仅有通过滚动的代理方法监測滚动视图的滚动方向来控制导航栏显示还是隐藏就可以:
通过实现UIScrollView的代理方法来操作: 方式例如以下:// 滑动scrollView,而且手指离开时运行。一次有效滑动,仅仅运行一次。// 当pagingEnabled属性为YES时。不调用。该方法-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{ NSLog(@"%f",velocity.y); if (velocity.y > 0.0) { //向上滑动隐藏导航栏 self.navigationController.navigationBar.hidden = YES; }else { //向下滑动显示导航栏 self.navigationController.navigationBar.hidden = NO; }}
假设认为效果僵硬,可自行载入动画效果!
关于 UIScrollView Delegate 的具体解释可到此查看: