获取UITableView的取消选择的indexPath数组

时间:2014-01-28 15:03:25

标签: ios iphone objective-c

通过调用

可以很容易地获得一系列选定的UITableView对象行
[tableView indexPathsForSelectedRows];

有没有办法获得tableView的取消选择行的反转数组?

4 个答案:

答案 0 :(得分:5)

NSMutableArray *unselectedIndexPaths = [NSMutableArray array];

NSInteger sectionCount = self.tableView.numberOfSections;

for (int i = 0; i < sectionCount; i++) {
    NSInteger rowCount = [self.tableView numberOfRowsInSection:i];

    for (int j = 0; j < rowCount; j++) {
        [unselectedIndexPaths addObject:[NSIndexPath indexPathForRow:j inSection:i]];
    }
}

[unselectedIndexPaths removeObjectsInArray:self.tableView.indexPathsForSelectedRows];

答案 1 :(得分:2)

您知道所选行的索引路径。您还知道表视图有多少部分以及每个部分有多少行。

总行数 - 选定的行数=未选定的行数。

答案 2 :(得分:0)

您无法获得这些NSIndexPath个对象,因为UITableView不会同时创建所有索引。对于优化问题,NSIndexPath对象将“按需”创建。

但是您可以从源数组中提取所选项目以创建具有非选定项目的新项目。

请参阅this answer,了解如何执行此操作。

答案 3 :(得分:0)

您可以使用

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath

并调用相同的方法

[tableView indexPathsForSelectedRows];