前端数据无分组返回,自遍历设置数据按时间分组显示
直接撸代码
拿到加载后的总数据后,通过下面两个方法来定位数据位置
//获得每个时间相同的数量
- (NSArray *)getRowNumberArray {
@autoreleasepool {
NSMutableArray *timeArr=[NSMutableArray array];
for(inti=0; i
@autoreleasepool {
SystemNotification*model=self.dataArray[i];
[timeArr addObject:model.create_at];
}
}
NSInteger num=1;
NSMutableArray *arr2=[NSMutableArray array];//记录每个时间相同的数量
for(inti=0; i
@autoreleasepool {
if([timeArr[i] isEqualToString:timeArr[i+1]]){
num++;
}else{
[arr2 addObject:[NSNumber numberWithDouble:num]];
num=1;
}
}
}
[arr2 addObject:[NSNumber numberWithDouble:num]];
returnarr2;
}
}
//获得每个不同时间第一个数的位置
- (NSArray *)getIndexArray {
@autoreleasepool {
NSArray *arr=[self getRowNumberArray];
NSMutableArray *arr1=[NSMutableArray array];
[arr1 addObject:@0];
for(inti=0; i
@autoreleasepool {
NSInteger index=[[arr1 lastObject] integerValue]+[arr[i] integerValue];
[arr1 addObject:[NSNumber numberWithDouble:index]];
}
}
returnarr1;
}
}
以下tablecell中的使用方法:
- (UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath {
NSArray *arr=[self getIndexArray];
NSInteger index=[arr[indexPath.section] integerValue];
SystemNotification*model=self.dataArray[index+indexPath.row];// 拿到模型
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
NSMutableSet *set=[NSMutableSet set];// 不重复元素来确定section数量
for(inti=0; i< self.dataArr.count;i++) {
SystemNotification*model=self.dataArray[i];
[set addObject:model.create_at];
}
return set.count;
}
- (NSInteger)tableView:(UITableView*)tableViewnumberOfRowsInSection:(NSInteger)section {
NSArray *arr=[self getRowNumberArray];
return [arr[section] integerValue];// section中的cell数量
}
OK啦,少年!