我正在使用UITableView
开发一个iPhone应用程序。我已使用didSelectRowAtIndexPath
委托在每个单元格上实现了复选标记。现在我想选择一个禁用所有其他单元格的单元格(删除复选标记),反之亦然。 (例如:要选择在第8个单元格上显示复选标记的第8个单元格并删除其他单元格的复选标记,然后选择其他单元格显示该单元格上的复选标记并删除8Th单元格上的复选标记。)
如何在UITableView
?
如果有人知道请帮助我。
答案 0 :(得分: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;
};
在调用currentlyCheckedRow
时更新-tableView:didSelectRowAtIndexPath:
ivar:
currentlyCheckedRow = indexPath.row;
currentlyCheckedSection = indexPath.section;
[tableView reloadData];