我有一个类似于首选项页面的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
我遇到的问题是,如果我加载应用程序,然后正确设置我之前选择的单元格,他们就不会接受点击事件!所以用户永远不能取消选择它们。
答案 0 :(得分:0)
对您有所帮助。
尝试这种方法
- (UITableViewCell *)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexpath.row == selectedrow) {
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;cell.selectedBackgroundView = nil;
}
return cell;
}
如果您需要任何细节,请与我们联系。