UITableView的数据编辑

UITableView数据编辑

要想对UITableView中的数据进行编辑,需要实现UITableView中的属性和<UITableViewDataSource>和<UITableViewDelegate>协议中的一些方法。
首先需要让UITableView处于编辑状态
  在按钮的点击事件中设置点击事件,在点击事件中可以对当前的状态进行判断。
- (void)buttonAction:(id)sender{
      if(_table.editing == YES){
         [_table setEditing:NO animated:NO];
     }else{
       [_table setEditing:YES animated:YES];
     }
}
UITableView处于编辑状态后就可以对其进行数据编辑。
UITableView数据编辑的一些方法:
1.控制表示图中的哪一行可以进行编辑,其中哪一行可以根据方法中的参数indexPath来进行判断,最后返回为YES或NO来判断哪一行可以进行编辑。( UITableViewDataSource协议方法
- (BOOL) tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath;
2.控制编辑样式,可以根据indexPath来对其中的行进行控制,然后将编辑样式返回。(UITableViewDelegate协议方法)
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath;
方法的返回值UITableViewCellEditingStyle是编辑数据的样式,它是一个枚举类型的数据。

里面有三种类型:UITableViewCellEditingStyleNone,  没有编辑样式

                             UITableViewCellEditingStyleDelete,  删除样式

                             UITableViewCellEditingStyleInsert   添加样式

3.提交删除和添加样式的动作( UITableViewDataSource协议方法
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath;
在方法中,可以根据参数editingStyle来判断编辑样式是删除还是添加。删除和添加是对UITableView中的数组进行操作的,所以在移除或添加之后都需要重新刷新数组中的数据,然后重新走协议。
if (editingStyle == UITableViewCellEditingStyleDelete) {//编辑样式是删除
        [[_tableArray objectAtIndex:indexPath.section] removeObjectAtIndex:indexPath.row];// 从数组中将选中的数据移除
} else if(editingStyle == UITableViewCellEditingStyleInsert){//编辑样式是添加
        NSMutableDictionary *add = [[NSMutableDictionary alloc] init];
        [add setObject:@"1.jpg" forKey:@"image"];
        [add setObject:@"吴东阳" forKey:@"name"];
        [add setObject:@"男" forKey:@"sex"];
        [[_tableArray objectAtIndex:indexPath.section] addObject:add];//将数据添加到数据中
    }
[tableView reloadData]; //刷新数据
}
4.上下移动 ,因为要对数据进行操作,所以需要在移动完成后重新刷新数据。( UITableViewDataSource协议方法
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath;<pre name="code" class="objc">- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath{
    //移动行
    NSMutableArray * arr = [_tableArray objectAtIndex:sourceIndexPath.section];
    id value = [[arr objectAtIndex:sourceIndexPath.row]retain];//定义一个中间值来保存需要移动的数据
    [arr removeObjectAtIndex:sourceIndexPath.row];//从数组中将原来位置的数据移除
    [arr insertObject:value atIndex:destinationIndexPath.row];//添加到要移动到的位置
    [tableView reloadData];//重新刷新数据
    [value release];
}
 5.可以对编辑样式中删除字体进行编辑 ,将需要修改的字符串返回即可。(UITableViewDelegate协议方法) 
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath;









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值