tableView 局部刷新实例记录

这个博客没什么, 就是记录一下局部刷新tableView的示例

- (void)reloadToCheckAccount:(FZMLoginParameters *)parameters{
    // 需要更新的cell
   NSMutableArray *updates = [NSMutableArray arrayWithCapacity:self.parameters.subParameters.count];
    if (self.parameters) {
        NSArray *sParams = self.parameters.subParameters.copy;
        NSMutableArray *deletes = [NSMutableArray arrayWithCapacity:sParams.count];
       // 对比数据 找到需要删除的cell 和需要更新的cell
        [sParams enumerateObjectsUsingBlock:^(FZMLoginSubParameters * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
             __block  BOOL find = NO;
            [parameters.subParameters enumerateObjectsUsingBlock:^(FZMLoginSubParameters * _Nonnull obj1, NSUInteger idx1, BOOL * _Nonnull stop1) {
                if (obj.subViewMode == obj1.subViewMode) { // 需要更新的
                    find = YES;
                    *stop1 = YES;
                    if (obj.subViewMode != FZMLoginSubViewMode_UserAccountInput) {
                        [updates addObject:[NSIndexPath indexPathForRow:idx1 inSection:0]];
                    }

                }
            }];
            if (find == NO) { // 需要删除的
                [deletes addObject:obj];
            }
        }];
        // 先删除数据源
        NSMutableArray *mary = [NSMutableArray arrayWithArray:self.parameters.subParameters];
        NSMutableArray *deleteIndexPath = [NSMutableArray arrayWithCapacity:deletes.count];
        [deletes enumerateObjectsUsingBlock:^(FZMLoginSubParameters *obj, NSUInteger idx, BOOL * _Nonnull stop) {
            [mary removeObject:obj];
            [deleteIndexPath addObject: [self.tableView indexPathForCell:obj.currentCell]];
        }];

        // 删除数据
        self.parameters.subParameters = mary;
        [self.tableView beginUpdates];
        [self.tableView deleteRowsAtIndexPaths:deleteIndexPath withRowAnimation:UITableViewRowAnimationNone];
        [self.tableView endUpdates];
    }
    // 更新
    self.parameters = parameters;
    [self.tableView beginUpdates];
    [self.tableView reloadRowsAtIndexPaths:updates withRowAnimation:UITableViewRowAnimationNone];
    [self.tableView endUpdates];

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值