计算 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
}
希望这对你有用。
我真正想做的是计算选择和取消选择行后选择的行数。我得到了总计数,但是当我取消选择该行时,我想计算仍然选择了多少其他行。我的代码如下
//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
}
希望这对你有用。