数据分组 2021-03-18

 前端数据无分组返回,自遍历设置数据按时间分组显示

直接撸代码

拿到加载后的总数据后,通过下面两个方法来定位数据位置

//获得每个时间相同的数量

- (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啦,少年!

你可能感兴趣的:(数据分组 2021-03-18)