1. 程式人生 > >UITableView去掉headerView和footerView的粘性,隨tableview滾動(有瑕疵)

UITableView去掉headerView和footerView的粘性,隨tableview滾動(有瑕疵)

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView.tag == 100102) {
        UITableView *tableview = (UITableView *)scrollView;
        CGFloat sectionHeaderHeight = 20;
        CGFloat sectionFooterHeight = 20;
        CGFloat offsetY = tableview.contentOffset.y;
        if (offsetY >= 0 && offsetY <= sectionHeaderHeight)
        {
            tableview.contentInset = UIEdgeInsetsMake(-offsetY, 0, -sectionFooterHeight, 0);
        }else if (offsetY >= sectionHeaderHeight && offsetY <= tableview.contentSize.height - tableview.frame.size.height - sectionFooterHeight)
        {
            tableview.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, -sectionFooterHeight, 0);
        }else if (offsetY >= tableview.contentSize.height - tableview.frame.size.height - sectionFooterHeight && offsetY <= tableview.contentSize.height - tableview.frame.size.height)
        {
            tableview.contentInset = UIEdgeInsetsMake(-offsetY, 0, -(tableview.contentSize.height - tableview.frame.size.height - sectionFooterHeight), 0);
        }
    }
}

缺點:

這個方法目前只適用於headerView和footerView的高度都是固定值的情況,另外在滾動到最後一個footerView即將顯示的時候,滾動條變化有點兒突然