0

我将UITableview选定的单元格样式设置为检查标记,但问题是它在选择单元格时显示检查,但是当我们选择新单元格时,另一个单元格也被标记为第一个。我希望所选单元格只显示一个复选标记

   UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];

if ([selectedCell accessoryType] == UITableViewCellAccessoryNone) {
    [selectedCell setAccessoryType:UITableViewCellAccessoryCheckmark];


} 
else {
    [selectedCell setAccessoryType:UITableViewCellAccessoryNone];
}
[tableView deselectRowAtIndexPath:indexPath animated:NO];
4

1 回答 1

0

将此代码添加到您的cellForRowAtIndexPath返回单元格之前;

    if (self.selectedIndexPath != nil && self.selectedIndexPath.row == indexPath.row
                && self.selectedIndexPath.section == indexPath.section) {
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
    }
    else {
        cell.accessoryType = UITableViewCellAccessoryNone;
    }

并将此代码添加到您的didSelectRowAtIndexPath.

    UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];

    if (self.selectedIndexPath != nil) {
        // Uncheck previously selected cell
        UITableViewCell *prevSelectedCell = [tableView cellForRowAtIndexPath:self.selectedIndexPath];
        [prevSelectedCell setAccessoryType:UITableViewCellAccessoryNone];
    }
    [selectedCell setAccessoryType:UITableViewCellAccessoryCheckmark];
    self.selectedIndexPath = indexPath;

    [tableView deselectRowAtIndexPath:indexPath animated:NO];
于 2012-08-11T05:46:54.030 回答