UITableViewCell中的复选标记问题

时间:2009-09-22 09:52:25

标签: iphone objective-c cocoa-touch uikit

我已经在下面的代码中实现了这个。

UITableViewCell *cell = [tableView1 cellForRowAtIndexPath:indexPath];
UITableViewCell *cell2 = [tableView1 cellForRowAtIndexPath:oldIndexPath1];

cell.accessoryType = UITableViewCellAccessoryCheckmark;
cell2.accessoryType = UITableViewCellAccessoryNone;
oldIndexPath1 = indexPath;

但是,如果我选择然后取消选中复选标记,那么我就不能再选中复选标记了。

你可以帮帮我吗?

1 个答案:

答案 0 :(得分:6)

我认为你混淆了将支票从一个改为另一个的动作以及只切换一个单元格的动作。

假设您只需要一个带有复选标记的单元格,则可以执行以下操作:

+(void)toggleCheckmarkedCell:(UITableViewCell *)cell
{
    if (cell.accessoryType == UITableViewCellAccessoryNone)
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
    else
        cell.accessoryType = UITableViewCellAccessoryNone;
}

// tableView:didSelectRowAtIndexPath:

UITableViewCell *cell = [tableView1 cellForRowAtIndexPath:indexPath];
UITableViewCell *cell2 = [tableView1 cellForRowAtIndexPath:oldIndexPath1];

// Toggle new cell
[MyController toggleCheckmarkedCell:cell];
if (cell != cell2) // only toggle old cell if its a different cell
    [MyController toggleCheckmarkedCell:cell2];
oldIndexPath1 = indexPath;