UITableView的多选删除方法

本文详细介绍了如何在iOS应用中实现列表视图的多选删除功能,包括编辑模式设置、多选框显示、选择项记录与处理等关键步骤。通过设置表格视图的编辑状态和响应选择事件,实现用户选择后删除指定项的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步,实现-(UITableViewCellEditingSt yle)tableView:(UITableView *)tableView editingStyleForRowAtInde xPath:(NSIndexPath *)indexPath
 
  1. (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
  2.     return UITableViewCellEditingStyleDelete UITableViewCellEditingStyleInsert; 
UITableViewCellEditingSt yleDelete是出现红的减号,再点一下就出来划动时出现的删除钮;UITableViewCellEditingSt yleInsert是出现红的加号应该是插入数据的时候用的吧,没细研究,最神奇的是两个同时出现就出现了前面带圈的多选项.
第二步,调出前面带圈的多选项.其实就是调用[self.tableview setEditing:YES animated:YES]啦,隐藏的话就setEditing:NO
第三步,实现记录选择或者取消的项.笔者竟然没有找到实现这个功能的专门的方法,没办法了,自己折中实现一下喽.
 
  1. (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
  2.     if (rightButton.title== @"确定"
  3.         [deleteDic setObject:indexPath forKey:[dataArray objectAtIndex:indexPath.row]]; 
  4.          
  5.     
  6.     else 
  7.          
  8.     
  9.  
  10. (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{ 
  11.     if (rightButton.title == @"确定"
  12.         [deleteDic removeObjectForKey:[dataArray objectAtIndex:indexPath.row]]; 
  13.     
  14.      
一个是多选状态下添加刚选择的项,一下移除刚取消的项.哎,真复杂.
第四步,得到想删除的项了,处理一下呗
 
  1. [dataArray removeObjectsInArray:[deleteDic allKeys]]; 
  2. [self.tableview deleteRowsAtIndexPaths:[NSArray arrayWithArray:[deleteDic allValues]] withRowAnimation:UITableViewRowAnimationFade]; 
  3. [deleteDic removeAllObjects]; 
好啦,搞定,看一下效果图.

首先得到一个列表.

点击编辑,出现选择框.

选择想要删除的项.
 

点删除.

删除以后的效果.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值