0

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

如何实现这一点UITableView

如果有人知道请帮助我。

4

1 回答 1

0

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

NSInteger currentlyCheckedRow;
NSInteger currentlyCheckedSection;

在您的初始化方法中,将currentlyCheckedRow和设置currentlyCheckedSection为一个负整数,-1这样它就不会被任何可能的行值匹配。

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

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

调用时更新currentlyCheckedRowivar :-tableView:didSelectRowAtIndexPath:

 currentlyCheckedRow = indexPath.row;
 currentlyCheckedSection = indexPath.section;
 [tableView reloadData];
于 2012-06-11T07:11:13.323 回答