美文网首页iOS DeveloperUIuicllectionView
UITableView 编辑状态(删除、添加、移动)

UITableView 编辑状态(删除、添加、移动)

作者: LeeCen | 来源:发表于2016-03-09 20:01 被阅读3611次

    ----- TableView 删除和添加 -----

       ** UITableView 编辑步骤
          1.让 tableView 处于编辑状态
          2.协议确定
              1)确定 cell 是否处于编辑状态
              2)设定 cell 的编辑样式(删除、添加)
              3) 编辑状态进行提交**
      
    
    • 开启编辑状态
        //1.让 tableView 处于编辑状态
        [tableView setEditing:YES animated:YES];
      

      如果没有开启编辑状态,没有左边的小红点

    Paste_Image.png
    • 1)确定 cell 是否处于编辑状态
    -(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
    {
      return YES;
    }
    
    • 2)设定 cell 的编辑样式(删除、添加)
    -(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
    {
            //插入
    //    return UITableViewCellEditingStyleInsert;
        //删除
        return UITableViewCellEditingStyleDelete;
    }
    
    • 3) 编辑状态进行提交
    -(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
    {
        switch (editingStyle) {
            case UITableViewCellEditingStyleNone:
            {
            }
                break;
            case UITableViewCellEditingStyleDelete:
            {
                //修改数据源,在刷新 tableView
                [_dataSource removeObjectAtIndex:indexPath.row];
    
                //让表视图删除对应的行
                [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
            }
                break;
            case UITableViewCellEditingStyleInsert:
            {
                [_dataSource insertObject:@"我是新增" atIndex:indexPath.row];
                //让表视图添加对应的行
                [tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
            }
                break;
    
            default:
                break;
        }
    }
    
    • 修改 Delete 文字
    -(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        return @"删除";
    }
    
    
    删除.gif 添加.gif

    ----- TableView 移动 -----

    • 1.实现协议:告诉 tableView 是否能够移动
    -(BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
    {
        return YES;
    }
    
    • 2.移动
    -(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
    {
        //修改数据源
        [_dataSource exchangeObjectAtIndex:sourceIndexPath.row withObjectAtIndex:destinationIndexPath.row];
        //让表视图对应的行进行移动
        [tableView exchangeSubviewAtIndex:sourceIndexPath.row withSubviewAtIndex:destinationIndexPath.row];
    }
    
    移动.gif

    相关文章

      网友评论

      • 33a02bf71691:插入和删除状态时 红色加和绿色减怎么修改成别的颜色呢?
        33a02bf71691:@重复昵称 UITableViewCellEditingStyleInsert就这种状态下 修改圆形区域的颜色 绿色改成黄色
        33a02bf71691:@Lee_Cen 这个我用着咋没有效果呢
        LeeCen:@重复昵称

        我在编辑(全选或选中)模式使用,你可以尝试一下

        cell.tintColor = [UIColor orangeColor];

        可以修改颜色

      本文标题:UITableView 编辑状态(删除、添加、移动)

      本文链接:https://www.haomeiwen.com/subject/weftlttx.html