我有一个类似于首选项页面的 uitableview。我使用 NSDefaults 保存用户选择,并在加载时重新加载这些默认值并设置 tableview 单元格以显示为选中状态。
我在这个方法中这样做
- (UITableViewCell *)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
//if this cell should look as if it was selected as a preference {
UIView *selectionColor = [[UIView alloc] init];
selectionColor.backgroundColor = [UIColor colorWithRed:(200/255.0) green:(200/255.0) blue:(200/255.0) alpha:0.6];
cell.selectedBackgroundView = selectionColor;
cell.selected = true;
}
else{
cell.selected = false;
}
return cell;
}
现在,如果用户取消选择一个单元格,我会在这里处理
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
我遇到的问题是,如果我加载应用程序,然后正确设置以前选择的单元格,它们永远不会接受点击事件!所以用户永远不能取消选择它们。