1

我有一个类似于首选项页面的 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

我遇到的问题是,如果我加载应用程序,然后正确设置以前选择的单元格,它们永远不会接受点击事件!所以用户永远不能取消选择它们。

4

1 回答 1

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;
}

如果您需要任何详细信息,请告诉我。

于 2013-07-18T05:23:26.607 回答