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 的詳解可到此查看: iOS UIScrollViewDelegate詳解