因?yàn)樽约河煤?jiǎn)書(shū)和知乎比較多羡微,所以對(duì)其導(dǎo)航欄的效果比較好奇攻冷,自己私下里找資料實(shí)現(xiàn)了一下丈攒。這個(gè)效果的關(guān)鍵點(diǎn)在于下方可供滑動(dòng)的內(nèi)容的便宜距離inset的改變切揭,以及滑動(dòng)的scrollview代理的執(zhí)行狞甚,廢話不多說(shuō),上代碼
首先是tableview的便宜距離inset的設(shè)置
if([self respondsToSelector:@selector(automaticallyAdjustsScrollViewInsets)])
{
self.automaticallyAdjustsScrollViewInsets = NO;
UIEdgeInsets insets = self.tableView.contentInset;
insets.top =self.navigationController.navigationBar.bounds.size.height;
self.tableView.contentInset =insets;
self.tableView.scrollIndicatorInsets = insets;
}
self.tableView.frame =CGRectMake(0, 20, self.view.bounds.size.width, self.view.bounds.size.height);
上述代碼的作用是在執(zhí)行的時(shí)候自動(dòng)改變tableview的便宜距離的相關(guān)設(shè)置廓旬,下一步在滑動(dòng)的時(shí)候隱藏導(dǎo)航欄
-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
if(velocity.y>0)
{
self.navigationController.navigationBar.hidden = YES;
}
else
{
self.navigationController.navigationBar.hidden = NO;
}
}
由此便實(shí)現(xiàn)了簡(jiǎn)書(shū)和知乎的導(dǎo)航欄顯示和隱藏的效果哼审,各位可以自行添加動(dòng)畫(huà)。