我在UITableView中选择了多个单元格,但在编辑后会自动取消选中。我搜索了一下,我看到有人说他们叫'reloadData'导致选择被删除,但除了'viewDidAppear'之外,我不会在任何地方调用reloadData。即使已取消编辑而未进行任何更改,也会取消选择它们(单击工具栏中的“编辑”按钮,然后单击“完成”按钮而不进行任何编辑)。我不确定这是怎么回事。或者,如果我能够检测到编辑完成的时间(单击“完成”按钮时),我可以简单地重新选择所有已选择的单元格,但我不确定如何检测它。 我怎样才能防止细胞被取消选择?或者在编辑后重新选择单元格?
提前致谢。
答案 0 :(得分:1)
我认为你试图在按下按钮时实现选择和取消选择,如果你试图在UITableViewCell中改变选择状态,请尝试使用按钮动作中的方法。
-(IBAction) someAction {
if(buttonToggled){
[tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
}else{
//Do something
}
}
用于更改backgroundColor。
cell.selectionStyle = UITableViewCellSelectionStyleGray;
cell.selectedBackgroundView.backgroundColor=[UIColor blackColor];
有关上述内容的更多信息,请查看链接。
答案 1 :(得分:0)
我建议最好的选择是在每次按下“完成”按钮后自己重新选择。
单元格被取消选择或按钮被取消是非常正常的,因为这是它们的正常状态 - 如果您编写自己的代码来更改它,则会执行此操作 - 就像您的情况一样。
这是如何选择一行:
[tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
如果您有多个可以选择的行,请确保您具有相应的设置,否则它可能始终取消选择除最近行之外的所有行。
答案 2 :(得分:0)
没关系。我发现只要点击“编辑”或“完成”按钮,就会调用- (void)setEditing:(BOOL)editing animated:(BOOL)animated
。