2009-09-22 38 views
2

我在下面的代码来实现这一点。问题有选在一个UITableViewCell

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

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

但是,如果我选择,然后取消选择复选标记,然后我不能选择对号了。

你能帮助我吗?

+2

倘使你在didSelectRowAtIndexPath方法发布的代码()。 – Jordan 2009-09-22 12:10:35

回答

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;