zoukankan      html  css  js  c++  java
  • iosTableView 局部全部刷新以及删除编辑操作

    • 局部刷新方法

      1. 添加数据

        NSArray *indexPaths = @[
                               [NSIndexPath indexPathForRow:0 inSection:0],
                               [NSIndexPath indexPathForRow:1 inSection:0]
                               ];
        [self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationRight];
      2. 删除数据

        NSArray *indexPaths = @[
                             [NSIndexPath indexPathForRow:0 inSection:0],
                             [NSIndexPath indexPathForRow:1 inSection:0]
                             ];
        [self.tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationMiddle];
      3. 更新数据(没有添加和删除数据,仅仅是修改已经存在的数据)

        NSArray *indexPaths = @[
                             [NSIndexPath indexPathForRow:0 inSection:0],
                             [NSIndexPath indexPathForRow:1 inSection:0]
                             ];
        [self.tableView relaodRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationMiddle];
    • 左滑出现删除按钮

      • 需要实现tableView的代理方法

          // 只要实现了这个方法,左滑出现Delete按钮的功能就有了
          // 点击了“左滑出现的Delete按钮”会调用这个方法
          - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
              {
              // 删除模型
              [self.wineArray removeObjectAtIndex:indexPath.row];
        
              // 刷新
              [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];
              }   
               // 修改Delete按钮文字为“删除”
              - (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
              {
                  return @"删除";
              }
    • 左滑出现N个按钮

      • 需要实现tableView的代理方法只要实现了这个方法,左滑出现按钮的功能就有了(一旦左滑出现了N个按钮,tableView就进入了编辑模式, tableView.editing = YES)

        - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
          {
        
          }   
          // 左滑cell时出现什么按钮
          - (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
          {
              UITableViewRowAction *action0 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"关注" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
              NSLog(@"点击了关注");
        
              // 收回左滑出现的按钮(退出编辑模式)
              tableView.editing = NO;
          }];
        
          UITableViewRowAction *action1 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"删除" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
              [self.wineArray removeObjectAtIndex:indexPath.row];
              [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
          }];
        
          return @[action1, action0];
        }
    • 进入编辑模式

    // self.tabelView.editing = YES;
    [self.tableView setEditing:YES animated:YES];
    // 默认情况下,进入编辑模式时,左边会出现一排红色的“减号”按钮
    • 在编辑模式中多选
    // 编辑模式的时候可以多选
    self.tableView.allowsMultipleSelectionDuringEditing = YES;
    // 进入编辑模式
    [self.tableView setEditing:YES animated:YES];
    
    // 获得选中的所有行
    self.tableView.indexPathsForSelectedRows;
  • 相关阅读:
    一个简单的C++程序反汇编解析
    一个简单的C++程序反汇编解析
    Oracle 10g 用户数及价格
    若何应对被公开的Oracle口令加密算法(3)
    Solaris办事管理对象 SMF快速入门指南(1)
    Solaris 10完成安好Kerberos身份验证(1)
    Solaris效力操持工具 SMF疾速入门指南(3)
    Oracle Warehouse Builder 自动化ETL措置历程(4)
    如何经过PHP获得MySQL procedure成效
    Solaris 10下设置EJB 3.0情况(2)
  • 原文地址:https://www.cnblogs.com/sunfuyou/p/6189164.html
Copyright © 2011-2022 走看看