我正在开发一个 iPhone 应用程序。我已经在每个带有委托UITableView
的单元格上实现了复选标记。didSelectRowAtIndexPath
现在我想选择一个禁用所有其他单元格的单元格(删除复选标记),反之亦然。(例如:选择第8个单元格显示第8个单元格上的复选标记并删除其他单元格的复选标记,然后选择其他单元格显示该单元格上的复选标记并删除第8个单元格上的复选标记)。
如何实现这一点UITableView
?
如果有人知道请帮助我。
我正在开发一个 iPhone 应用程序。我已经在每个带有委托UITableView
的单元格上实现了复选标记。didSelectRowAtIndexPath
现在我想选择一个禁用所有其他单元格的单元格(删除复选标记),反之亦然。(例如:选择第8个单元格显示第8个单元格上的复选标记并删除其他单元格的复选标记,然后选择其他单元格显示该单元格上的复选标记并删除第8个单元格上的复选标记)。
如何实现这一点UITableView
?
如果有人知道请帮助我。
您可以通过将这两个 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
ivar :-tableView:didSelectRowAtIndexPath:
currentlyCheckedRow = indexPath.row;
currentlyCheckedSection = indexPath.section;
[tableView reloadData];