sectionHeaderView ,sectionfooterView不悬浮

演示.gif
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
    //sectionHeader不悬浮
//    if (scrollView == self.tabView)
//    {
//        CGFloat sectionHeaderH = sectionHeaderHeight;  //sectionHeaderHeight
//        CGFloat sectionFooterH = sectionFooterHeight;
//
//        UITableView *tableview = (UITableView *)scrollView;
//
//        if (scrollView.contentOffset.y<=sectionHeaderH&&scrollView.contentOffset.y>=0) {
//            scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
//        } else if (scrollView.contentOffset.y>=sectionHeaderH) {
//            scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderH, 0, 0, 0);
//        }
//    }
    
    //sectionHeader以及sectionFooter不悬浮
    if (scrollView == self.tabView)
    {
        UITableView *tableview = (UITableView *)scrollView;
        CGFloat sectionHeaderH = sectionHeaderHeight;
        CGFloat sectionFooterH = sectionFooterHeight;
        CGFloat offsetY = tableview.contentOffset.y;
        if (offsetY >= 0 && offsetY <= sectionHeaderH)
        {
            tableview.contentInset = UIEdgeInsetsMake(-offsetY, 0, -sectionFooterH, 0);
            
        }else if (offsetY >= sectionHeaderH && offsetY <= tableview.contentSize.height - tableview.frame.size.height - sectionFooterH)
        {
            tableview.contentInset = UIEdgeInsetsMake(-sectionHeaderH, 0, -sectionFooterH, 0);
        }else if (offsetY >= tableview.contentSize.height - tableview.frame.size.height - sectionFooterH && offsetY <= tableview.contentSize.height - tableview.frame.size.height)
        {
            tableview.contentInset = UIEdgeInsetsMake(-offsetY, 0, -(tableview.contentSize.height - tableview.frame.size.height - sectionFooterH), 0);
        }
    }
}

  • 更多参考:https://www.jianshu.com/p/e7f57ab46e6f

你可能感兴趣的:(sectionHeaderView ,sectionfooterView不悬浮)