从uitableview中选择多行并删除 [英] select multiple rows from uitableview and delete
本文介绍了从uitableview中选择多行并删除的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在tableview中显示项目列表。我需要一次从表中选择并删除多行,有关如何执行此操作的任何资源
i am displaying a list of items in a tableview.i need to select and delete multiple rows from the table at a time,any resources on how to do this
推荐答案
我假设您的表只有一个部分。您可以相当容易地将此解决方案扩展到多个部分。
I'm assuming your table has just one section. You can extend this solution to multiple sections fairly easily.
- 将NSMutableSet成员 selectedRows添加到管理TableView的UIViewController子类中
- 在
中-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
在 selectedRows中切换indexPath.row的成员身份,就像这样:
- Add an NSMutableSet member "selectedRows" to your UIViewController subclass that manages your TableView
- in
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
toggle the indexPath.row's membership in "selectedRows", like this:
NSNumber *rowNsNum = [NSNumber numberWithUnsignedInt:indexPath.row];
if ( [self.selectedRows containsObject:rowNsNum] )
[self.selectedRows removeObject:rowNsNum];
else
[self.selectedRows addObject:rowNsNum];
- 直观地表明已选择行(例如,设置单元格的annexType属性,或以其他方式直观地修改您的单元格以表明它是选定的行
- 向您的UI添加删除按钮,可以在表格部分的标题/页脚,标题栏,任何位置,都连接到deleteRows方法中名为 deleteRows的选择器
- ,遍历selectedRows集,建立一个indexPaths数组,从中删除这些行您的数据模型,然后调用(使用您喜欢的动画类型):
[self.myTableView deleteRowsAtIndexPaths:arrayOfIndexPathsToDelete withRowAnimation:UITableViewRowAnimationTop];
编辑:
这是我完整的didSelectRowAtIndexPath方法。正确操作可能需要deselectRowAtIndexPath。
Here's my full didSelectRowAtIndexPath method. The deselectRowAtIndexPath may be required for correct operation.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if ( self.editing )
return;
[self.myTableView deselectRowAtIndexPath:indexPath animated:YES];
NSNumber *rowNsNum = [NSNumber numberWithUnsignedInt:indexPath.row];
if ( [self.selectedRows containsObject:rowNsNum] )
[self.selectedRows removeObject:rowNsNum];
else
[self.selectedRows addObject:rowNsNum];
[self.myTableView performSelector:@selector(reloadData) withObject:nil afterDelay:0.2];
}
这篇关于从uitableview中选择多行并删除的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文