我真正想要做的是计算选择和取消选择行后选择的行数。我得到总计数,但是当我取消选择我要计算的行时,仍然选择了多少其他行。我的代码如下
//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的值传递给另一个视图并将其显示在一个按钮中。我知道这是小事,但我无法做到。任何帮助将不胜感激。
答案 0 :(得分:5)
您可以向表格视图询问其当前选择的索引,因此如果您现在只需要多少索引,您可以这样做:
[self.tableView indexPathsForSelectedRows].count
修改强>
要继续关注UITableViewCellAccessoryCheckmark
的单元格,您可以这样递减countId
:
if (cell.accessoryType == UITableViewCellAccessoryNone)
{
cell.accessoryType = UITableViewCellAccessoryCheckmark;
countId = countId + 1;
}
else
{
cell.accessoryType = UITableViewCellAccessoryNone;
countId = countId - 1;
}
答案 1 :(得分:0)
你可以做一件事。
在didSelectRowAtIndexPath中,获取单元格引用并更改它的附件,然后重新加载tableView,然后再设置countId = 0.
OR
选择一个Mutable Array(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
}
希望这适合你。