iOS监听tableView组头切换事件 发表于 2016-10-25 | 分类于 iOS iOS监听tableView组头切换事件12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section 组头将要出现的时候系统会调用;- (void)tableView:(UITableView *)tableView didEndDisplayingHeaderView:(UIView *)view forSection:(NSInteger)section 组头出现的时候系统会调用;利用以上两个方法可以判断出组头被顶出和组头又下拉回来事件,还有其他的组头相关动作可以监听需自己去编写。_currentSection:当前显示的组头_isUpScroll:是否是上拉滚动_isFirstLoad:是否第一次加载tableView_oldY:滚动的偏移量- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section{if(!_isUpScroll && (_currentSection - section) == 1){//最上面组头(不一定是第一个组头,指最近刚被顶出去的组头)又被拉回来_currentSection = section;NSLog(@"willDisplayHeaderView显示第%ld组",(long)section);}}- (void)tableView:(UITableView *)tableView didEndDisplayingHeaderView:(UIView *)view forSection:(NSInteger)section{if(!_isFirstLoad && _isUpScroll){_currentSection = section + 1;//最上面的组头被顶出去NSLog(@"didEndDisplayingHeaderView显示第%ld组",(long)section + 1);}}- (void)scrollViewDidScroll:(UIScrollView *)scrollView{if ([scrollView isEqual: self.tableView]) {if (self.tableView.contentOffset.y > _oldY) {// 上滑_isUpScroll = YES;NSLog(@"上滑");}else{// 下滑_isUpScroll = NO;NSLog(@"下滑");}_isFirstLoad = NO;}}- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{// 获取开始拖拽时tableview偏移量_oldY = self.tableView.contentOffset.y;} ------本文结束😘感谢阅读------