UITableView在编辑后取消选择所选单元格

时间:2012-08-13 04:16:36

标签: iphone objective-c ios uitableview ios5

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

提前致谢。

3 个答案:

答案 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];

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

UITableView Cell selected Color?

答案 1 :(得分:0)

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

单元格被取消选择或按钮被取消是非常正常的,因为这是它们的正常状态 - 如果您编写自己的代码来更改它,则会执行此操作 - 就像您的情况一样。

这是如何选择一行:

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

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

答案 2 :(得分:0)

没关系。我发现只要点击“编辑”或“完成”按钮,就会调用- (void)setEditing:(BOOL)editing animated:(BOOL)animated