数据分组 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啦,少年!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.控件上数据没有的原因 a.源头数据是否存在 b.源头数据存在时,如果涉及到if比较,源头数据与被比较条件 是否...
    An_Jun阅读 1,081评论 0 0
  • iOS中常用的排序方法有(冒泡、选择、快速、插入、希尔、归并、基数) 接下来就依次介绍一下,直接上代码 1、冒泡排...
    Leeson1989阅读 1,052评论 0 0
  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 4,770评论 1 9
  • http://blog.csdn.net/david21984/article/details/57451917 ...
    紫色冰雨阅读 583评论 0 0
  • KVC(Key-valuecoding)键值编码,单看这个名字可能不太好理解。其实翻译一下就很简单了,就是指iOS...
    榕樹頭阅读 727评论 0 2