ios中uitableview里怎样实现多条删除数据,或删除所有
推荐于2016-01-24 · 知道合伙人互联网行家
关注
展开全部
删除行时table会调用其Data Source方法:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
在该方法中,可以有两种实现:
方法1:修改数据源,然后再[mytable reload],如:
[arr removeObjectAtIndex:indexPath.row];
[mytable reload];
方法2:调用UITableView的成员方法
- (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
如:
[arr removeObjectAtIndex:indexPath.row];
[mytable deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPaths withRowANimation:UITableViewRowAnimationFade]]。
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
在该方法中,可以有两种实现:
方法1:修改数据源,然后再[mytable reload],如:
[arr removeObjectAtIndex:indexPath.row];
[mytable reload];
方法2:调用UITableView的成员方法
- (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
如:
[arr removeObjectAtIndex:indexPath.row];
[mytable deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPaths withRowANimation:UITableViewRowAnimationFade]]。
展开全部
为你提出一个思路
如果你的数据是通过NSArray数组加至UITableViewCell中,通过编辑模式titleForDeleteConfirmationButtonForRowAtIndexPath也好 通过didSelectRowAtIndexPath也好 移除对应下标的数组元素 或是清空数组 然后记得通过reloadData重载你的UITableView
特殊情况特殊处理
如果你的数据是通过NSArray数组加至UITableViewCell中,通过编辑模式titleForDeleteConfirmationButtonForRowAtIndexPath也好 通过didSelectRowAtIndexPath也好 移除对应下标的数组元素 或是清空数组 然后记得通过reloadData重载你的UITableView
特殊情况特殊处理
追问
能在问一下吗,就是我在UItableview里 我的右边有一个label是日期的 当我点击编辑是那个日期就向右拖动了 只显示了一半 怎样才能显示完整
追答
你的意思是点击了编辑模式 前面会出现删除图标 将后面的内容自动向右移动 造成你的日期出界
如果你前面的内容不多的话 可以在
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
这个函数内 将你的label手动移动位置
你的日期应考虑到编辑模式移动的情况,因此在初始化的时候尽量不要紧贴右边,留出一定的余地。因为右端的accessoryType区域会占一定的位置,理论上你的内容不会出界。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询