大家都知道當tableView得style是plain的時候,設置section的頭視圖會有個卡在navBar下面的效果
但是實際開發中tablView的中的屬性發生改變的時候回這樣
我當時就想這玩意怎么就卡不住了呢,然后看了看視圖的層次關系發現其實是,section的位置發生了改變
只要它在就好辦了
在- (void)scrollViewDidScroll:(UIScrollView *)scrollView;方法中判斷
// 該方法是當scrollView滑動時觸發,因為UITableView繼承自UIScrollView因此在這里也可以調用 CGFloat header = 50;//這個header其實是section1 的header到頂部的距離 if (scrollView.contentOffset.y<=header&&scrollView.contentOffset.y>=0) { //當視圖滑動的距離小於header時 scrollView.contentInset = UIEdgeInsetsMake(64, 0, 0, 0); }else if(scrollView.contentOffset.y>header) { //當視圖滑動的距離大於header時,這里就可以設置section1的header的位置啦,設置的時候要考慮到導航欄的透明對滾動視圖的影響 scrollView.contentInset = UIEdgeInsetsMake(header*0.5+103, 0, 0, 0); }
具體數值位置自己算。