使用tableview的 plain模式创建二级列表 因为需求是还要在下方显示所有的联系人 我是使用tableview的 section头来做的 一级 但是在展开点击收缩 会因为tableview的contentoffset的原因 出现tableview上移的结果 所以在 section 头的点击方法里加上这些
- #pragma mark 根据当前tableview的位置计算tableview的缩进
- NSArray* visiableArr = [self.showAllContactsTableView indexPathsForVisibleRows];
- CGSize oldSize = _showAllContactsTableView.contentSize;
- CGPoint oldOffset = _showAllContactsTableView.contentOffset;
- NSIndexPath* indexP = [visiableArr firstObject];
- CGFloat tableViewCurrent = (self.friendsDataArr.count - indexP.row)* 64 ;
- if (indexP.section == headView.tag - 99 && indexP.row > 0) {
- tableViewCurrent = tableViewCurrent - 64 - indexP.section*20 ;
- }
- [_showAllContactsTableView reloadData];
- #pragma mark 记录tableview刷新之后页面的containsize 对比之后决定tableview的缩进
- CGSize newSize = _showAllContactsTableView.contentSize;
- CGPoint newPoint = CGPointMake(0, oldOffset.y + newSize.height - oldSize.height + tableViewCurrent);
- _showAllContactsTableView.contentOffset = newPoint;