每个部分中选择的项目数

时间:2017-07-15 03:47:26

标签: ios objective-c uitableview

在以下实现中,我能够跟踪每个选定单元格的indexPath和选择整个tableView的项目总数。

我想知道如何才能获得每个部分中选择的项目数量?

- (void)selectedItem: (UITableView *)tableView {
    NSArray <NSIndexPath*> *selectedIndexPaths = [tableView indexPathsForSelectedRows];
    for (NSIndexPath *indexpath in selectedIndexPaths) {
        NSLog(@"Section index : %ld", indexpath.section);
        NSLog(@"Row index : %ld", indexpath.row);
    }
}

这是打印输出,您可以看到我在第0部分中选择了2个项目,在第1部分中选择了1个项目。

po [tableView indexPathsForSelectedRows]
<__NSArrayI 0x1744428b0>(
<NSIndexPath: 0xc000000000400016> {length = 2, path = 0 - 2},
<NSIndexPath: 0xc000000000c00016> {length = 2, path = 0 - 6},
<NSIndexPath: 0xc000000001000116> {length = 2, path = 1 - 8}
)

1 个答案:

答案 0 :(得分:1)

NSMutableDictionary *selectedRowsInSectionDictionary = [NSMutableDictionary dictionary];
NSArray <NSIndexPath*> *selectedIndexPaths = [tableview indexPathsForSelectedRows];
for (NSIndexPath *indexpath in selectedIndexPaths) {
    NSInteger numberOfSelectedRows = [[selectedRowsInSectionDictionary objectForKey: @(indexpath.section)] integerValue];
    numberOfSelectedRows++;
    [selectedRowsInSectionDictionary setObject:@(numberOfSelectedRows) forKey: @(indexpath.section)];
}

您将获得一个部分中所选行的数量,其中部分编号作为键,并且该部分上所选行的数量为selectedRowsInSectionDictionary字典中的值。