问题: 当tableView的数据源是一个分组的数据时, 有时候需要根据index来反推它的NSIndexPath值
前提: 原始数据的整体顺序和分组数据的顺序是一样的
思路: 遍历数据源的section, 然后判断, 获取section的count, 角标比较该count, 如果小于, 则直接获取到了. 否则, 角标减去count, 循环下一个section. 直到获取到section的角标和row.
// 根据角标, 反推indexPath
- (NSIndexPath *)indexPathWithIndex:(NSInteger)index{
NSInteger section = 0;
NSInteger row = 0;
for (int i = 0; i<=self.nameSectionArray.count-1; i++) {
// 根据你自己的数据具体情况改变下面三行的获取方式
NSString *key = self.nameSectionArray[i];
NSArray* array = self.nameSectionDic[key];
NSInteger arrayCount = array.count;
if(index <=arrayCount-1){
section = i;
row = index;
break;
}else{
index -= arrayCount;
}
}
return [NSIndexPath indexPathForRow:row inSection:section];
}