一般情况下,tableview中的section是会默认不随着tableview的滚动而滚动的,而是会等到属于这个section的cell滑完过后,然后往上顶(不知道大家能不能听懂=_=!)
有些时候这样显得不是很美观,而且有些项目是需要主要针对section而不是row 进行操作,所以这个时候控制section不悬停就显得很重要
这里有两种方法,直接贴代码吧
- 第一种:
#pragma -mark 控制section不悬停 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { NSLog(@"%f",scrollView.contentOffset.y); CGFloat sectionHeaderHeight = ; if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=) { scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, , , ); } else if (scrollView.contentOffset.y>=sectionHeaderHeight) { scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, , , ); } }
- 第二种:
//- (void)setFrame:(CGRect)frame{ // CGRect sectionRect = [self.tableView rectForSection:self.section]; // CGRect newFrame = CGRectMake(CGRectGetMinX(frame), CGRectGetMinY(sectionRect), CGRectGetWidth(frame), CGRectGetHeight(frame)); [super setFrame:newFrame]; //}
希望能帮助到大家!
在项目中我使用的是第一种方法