在以下实现中,我能够跟踪每个选定单元格的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}
)

最佳答案

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词典中的值。

关于ios - 每个部分中选择的项目数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45114259/

10-13 03:54