计算 uitableview 中选定行的数量

Count number of selected rows in uitableview

我真正想做的是计算选择和取消选择行后选择的行数。我得到了总计数,但是当我取消选择该行时,我想计算仍然选择了多少其他行。我的代码如下

//countId = 0;
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];


    if (cell.accessoryType == UITableViewCellAccessoryNone)
    {
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
        countId = countId + 1;
    }

    else
    {
        cell.accessoryType = UITableViewCellAccessoryNone;
    }

    [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
}

然后我必须将 countId 的值传递给另一个视图并将其显示在按钮中。我知道这是一件小事,但我做不到。任何帮助将不胜感激。

你可以向 table 视图询问它当前选择的索引,所以如果你现在只需要多少,你可以这样做:

[self.tableView indexPathsForSelectedRows].count

编辑:

要继续跟踪带有 UITableViewCellAccessoryCheckmark 的单元格,您可以像这样递减 countId

if (cell.accessoryType == UITableViewCellAccessoryNone)
{
    cell.accessoryType = UITableViewCellAccessoryCheckmark;
    countId = countId + 1;
}

else
{
    cell.accessoryType = UITableViewCellAccessoryNone;
    countId = countId - 1; 
}

你可以做一件事。

在 didSelectRowAtIndexPath 中,获取单元格引用并更改它的附件,然后重新加载您的 tableView 并在此之前设置 countId = 0。

取一个可变数组(selectedArray)。

  • 现在在didSelecteRowAtIndexPath中写下代码

    if([selectedArray contains:indexpath.row]){
    [selectedArray removeObject:indexpath.row]; } 别的{ [selectedArray addObject:indexpath.row]; }

并且在 cellForRowAtIndexPath

if([selectedArray contains:indexpath.row]){
     cell.AccessoryType = checkmark
}else{
     cell.AccessoryType = none
}

希望这对你有用。