iOS-tableview去除headerview和footerview的黏性

tableview去除headerview和footer view有兩種方法:

第一種方法,直接創建tableview時選擇style為grouped;(默認為plain)

第二種方法:

同時去除headerview和footer view,

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

if (scrollView == self.listTableView) {

UITableView *tableview = (UITableView *)scrollView;

CGFloat sectionHeaderHeight = kCellSectionHeaderHeight;

CGFloat sectionFooterHeight = kCellSectionFooterHeight;

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,

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

if (scrollView == self.listTableView) {

CGFloat sectionHeaderHeight = kCellSectionHeaderHeight;

if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y >= 0) {

scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);

} else if (scrollView.contentOffset.y >= sectionHeaderHeight) {

scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);

}

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容