1

我在 UITableView 中选择了多个单元格,但在编辑后它们会自动取消选择。我搜索了一下,我看到人们说他们调用了“reloadData”,这导致选择被删除,但除了“viewDidAppear”之外,我不会在任何地方调用 reloadData。即使在没有更改任何内容的情况下取消了编辑,它们也会被取消选择(单击工具栏中的“编辑”按钮,然后单击“完成”按钮而不进行任何编辑)。我不确定这发生在哪里。或者,如果我可以检测到编辑何时完成(单击“完成”按钮时),我可以简单地重新选择所有已选择的单元格,但我不确定如何检测到它.. 怎么可能我防止单元格被取消选择?还是在编辑后重新选择单元格?

提前致谢。

4

3 回答 3

1

我假设您正在尝试在按钮按下时实现选择和取消选择,如果您尝试更改 UITableViewCell 中的选择状态,请尝试使用按钮操作中的方法。

-(IBAction) someAction {
    if(buttonToggled){
    [tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
    }else{
    //Do something
    }
}

用于更改背景颜色。

cell.selectionStyle = UITableViewCellSelectionStyleGray;
cell.selectedBackgroundView.backgroundColor=[UIColor blackColor];

有关上述内容的更多信息,请查看链接。

UITableView 单元格选择颜色?

于 2012-08-13T09:51:11.083 回答
0

我建议最好的办法是在每次按下“完成”按钮后自己重新选择它们。

取消选择单元格或未按下按钮是很正常的,因为这是它们的正常状态-除非您编写自己的代码来更改它-就像您的情况一样。

这是选择行的方法:

[tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];

如果您有多个可以选择的行,请确保您有相应的设置,否则它可能总是取消选择除最新行之外的所有行。

于 2012-08-13T05:58:48.353 回答
0

没关系。我发现- (void)setEditing:(BOOL)editing animated:(BOOL)animated每当单击“编辑”或“完成”按钮时都会调用它。

于 2012-08-13T06:53:17.703 回答