我的UITableView选择有问题。 如果单击编辑按钮,TableView将进入编辑模式并丢失当前选择。
如何在不丢失选择的情况下进入编辑模式?
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
// Return NO if you do not want the specified item to be editable.
return YES;
}
答案 0 :(得分:2)
我能够重现它:如果选择像[self.tableView selectRowAtIndexPath:]
这样的行,则单元格会丢失其选择。
但是如果直接选择单元格,它就不会在编辑时丢失选择,如下所示:
UITableViewCell* cell = [self.tableView cellForRowAtIndexPath:
[NSIndexPath indexPathForRow:1 inSection:0]];
[cell setSelected:YES animated:NO];
答案 1 :(得分:1)
覆盖表视图控制器中的setEditing:animated:
。如果要进入编辑模式,请将当前选择存储为NSIndexPath实例变量:
selectedRow = [self.tableView indexPathForSelectedRow];
如果您要退出编辑模式,请将表格的选择设置为存储的索引路径:
[self.tableView selectRowAtIndexPath:selectedRow animated:NO scrollPosition:UITableViewScrollPositionNone];
小心不要尝试选择在编辑过程中删除的行。并记得同时调用super
实现!