0

選択したセル スタイルをチェック マークに設定UITableviewしていますが、セルを選択するとチェックが表示されますが、新しいセルを選択すると、別のセルも最初にチェック マークが付けられます。選択したセルのチェックマークを1つだけ表示したい

   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 に答える