iOS中去掉UITableView的組頭的粘滯性一些問題

最近項目中有個地方需要用到去掉tableView組頭的粘滯性的需求,于是樓主就開始google解決這個問題了,首先找到了一個代碼段如下:
- (void)scrollViewDidScroll:(UIScrollView )scrollView{
/
* 修改成自己的組頭高度就可以了 /
CGFloat sectionHeight = self.height;
if (scrollView == self.tableView) {
if (scrollView.contentOffset.y <= sectionHeight && scrollView.contentOffset.y >= 0)`
{
scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
}else{
if(scrollView.contentOffset.y >= sectionHeight)
{
scrollView.contentInset = UIEdgeInsetsMake(-sectionHeight, 0, 0, 0);
}
}
}
}
這是在網(wǎng)上能找到的最多的關于去掉UITableView的組頭的方式,但是這段代碼在我的項目中使用的時候出了點問題,樓主需要實現(xiàn)的是一個
有表頭視圖且第一個分組沒有組頭視圖的tableView的展示,在使用時出現(xiàn)了在大于一個分組的時候,有時候向上只能拖動sectionHeight的高度,然后tableView就死活滑不上去了,但是,但是,但是,在樓主之前的demo中是沒有任何問題的,

效果圖.gif
也是郁悶,這個問題到現(xiàn)在還沒解,但是卻發(fā)現(xiàn)了另一種解決方式,那就是把tableVeiw的類型設置為Grouped*方式,tableView在Grouped時,會有一個默認的組頭和組尾視圖,可能系統(tǒng)自帶的這些視圖不符合我們項目的需求,這時tableView的代理方法就派上用場了


返回組頭和組尾視圖的代理方法

- (nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;   // custom view for header. will be adjusted to default or specified header height  
- (nullable UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section;   // custom view for footer. will be adjusted to default or specified footer height

返回組頭和組尾視圖高度的代理方法

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;

我們只需要在上面代理方法中返回我們需要顯示的組頭視圖或者組尾視圖就可以了,就可以不用實現(xiàn)scrollViewDidScroll的代理方法來實現(xiàn)取消組頭或者組尾視圖的粘滯性了,因為Grouped方式的tableView默認組頭和組尾視圖隨著tableView一起向上移動的,到此樓主所需的功能已經(jīng)實現(xiàn)取消組頭的粘滯性的需求,且沒有實現(xiàn)UIScrollow的那個代理方法。
Demo地址:https://github.com/PSSDeveloper/bugDemo/tree/master
最后總結(jié)一下:實現(xiàn)取消組頭或者組尾的粘滯性的需求時,可以先考慮使用Grouped方式的tableView,并通過系統(tǒng)的代理方法設置組頭或者組尾視圖,和組頭和組尾的高度。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容