天天看點

iOS-UITableView HeaderView随Cell一起移動

我們在使用TableView的時候,有時會設定HeaderView,當我們滑動的時候,HeaderView不會随Cell滑出螢幕,而是會固定到導航欄下面。今天我們要實作HeaderView随滑動一起滑出螢幕顯示。

方法:通過設定TableView的EdgeInset使HeaderView向上偏移,進而隐藏HeaderView,那麼我們隻需要設定EdgeInset的頂部資料就好了,我們需要計算出需要設定多少?

TableView繼承自ScrollView,當滑動的時候,會有一個偏移量 contentOffSet。對于第一個Section來說,我們需要将EdgeInset的頂部值設定為contentOffSet即可,之後的Section設定為HeaderView的高度即可

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGFloat headerViewHeight = 80.0;
    
    if (scrollView.contentOffset.y < headerViewHeight && scrollView.contentOffset.y >= 0) {
        scrollView.contentInset = UIEdgeInsetsMake(- scrollView.contentOffset.y, 0, 0, 0);
    } else if (scrollView.contentOffset.y >= headerViewHeight) {
        scrollView.contentInset = UIEdgeInsetsMake(- headerViewHeight, 0, 0, 0);
    }
}      

轉載于:https://www.cnblogs.com/huangzhengguo/p/11479500.html