UITAbleView单元格选择会影响同一UITableView中的另一个UITableView单元格

时间:2012-06-11 05:51:26

标签: uitableview xcode4.2 didselectrowatindexpath

我正在使用UITableView开发一个iPhone应用程序。我已使用didSelectRowAtIndexPath委托在每个单元格上实现了复选标记。现在我想选择一个禁用所有其他单元格的单元格(删除复选标记),反之亦然。 (例如:要选择在第8个单元格上显示复选标记的第8个单元格并删除其他单元格的复选标记,然后选择其他单元格显示该单元格上的复选标记并删除8Th单元格上的复选标记。)

如何在UITableView

中实现此目的

如果有人知道请帮助我。

1 个答案:

答案 0 :(得分:0)

您可以通过将这两个ivars添加到UITableViewController类来跟踪当前检查的单元格来实现此目的:

NSInteger currentlyCheckedRow;
NSInteger currentlyCheckedSection;

在初始化方法中,将currentlyCheckedRowcurrentlyCheckedSection设置为负整数,例如-1,以使其与任何可能的行值不匹配。

将以下内容添加到-tableView:cellForRowAtIndexPath:方法中:

// determine if cell should have checkmark
cell.accessoryType = UITableViewCellAccessoryNone;
if ( (indexPath.row == currentlyCheckedRow) &&
     (indexPath.section == currentlyCheckedSection) )
{
    cell.accessoryType = UITableViewCellAccessoryCheckmark;
};

在调用currentlyCheckedRow时更新-tableView:didSelectRowAtIndexPath: ivar:

 currentlyCheckedRow = indexPath.row;
 currentlyCheckedSection = indexPath.section;
 [tableView reloadData];