获取tableview单元格的复选框

时间:2016-04-05 07:08:59

标签: ios objective-c xcode uitableview tableviewcell

我知道之前已经提出这个问题,但这些问题之间存在混淆。因为我需要对单元格进行多次复选标记,然后再次单击该单元格,对于所选单元格,应将复选标记设置为无。我已经尝试了这个,但是当再次单击所选单元格时,所有单元格都被选中。我试过这个。

- (UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   myTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"myTableViewCell" forIndexPath:indexPath];
 cell.accessoryType = UITableViewCellAccessoryNone;

    return cell;
}

和didSelectRowAtIndexPath

- (void)tableView:(UITableView )tableView didSelectRowAtIndexPath:(NSIndexPath   )indexPath
{
     myTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"myTableViewCell" forIndexPath:indexPath];
    if ( cell.accessoryType == UITableViewCellAccessoryNone) {
         cell.accessoryType = UITableViewCellAccessoryCheckmark;
    }
   else
   {
       cell.accessoryType = UITableViewCellAccessoryNone;
   }

    }

和didDeselectRowAtIndexPath

-(void)tableView:(UITableView )tableView didDeselectRowAtIndexPath:(NSIndexPath )indexPath
{
    myTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"myTableViewCell" forIndexPath:indexPath];
    if ( cell.accessoryType == UITableViewCellAccessoryNone) {
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
    }
    else
    {
        cell.accessoryType = UITableViewCellAccessoryNone;
    }
}

请帮忙。

1 个答案:

答案 0 :(得分:0)

您只需要保持单元格状态是否被选中。 在你的cellForRowAtIndexPath中试试这个。

if ([tableView.indexPathsForSelectedRows containsObject:indexPath]) {
    cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else
{
    cell.accessoryType = UITableViewCellAccessoryNone;
}