关于ios:无需重新加载单元格即可在UITableViewCell上设置编辑样式

Set editing style on a UITableViewCell without reloading the cell

我正在构建一个与编辑模式下的"联系人"应用程序ABPersonViewController非常相似的视图控制器。

我有一个用自定义UITableViewCells填充的UITableView,其中包含一个UITextField,用户可以在其中输入电话号码

我遇到的情况是,如果有人开始输入一个新的电话号码(在该部分的最后一个单元格中),则在表的底部添加了一个新的空表视图单元格,并添加了当前表的编辑样式视图单元格设置为UITableViewCellEditingStyleDelete,就像在相同情况下的"联系人"应用程序中一样。

我的问题是我不知道如何在不重新加载UITableViewCell的情况下更改其编辑样式。重新加载它的问题是将释放当前正在编辑的UITextField,从而消除键盘。

是否可以在不重新加载UITableViewCell的情况下更改其编辑样式?还是实现我想要的另一种方式?


是的,只需使用UITableViewCell方法setEditing:animated:


我已成功应用以下代码设置了具有多个选择的编辑单元格:

1
2
3
4
5
6
    [self.tableView setEditing:YES animated:YES];    
    self.tableView.allowsMultipleSelectionDuringEditing = YES;  

    // Add these two lines can fix icon issue.(First time enter edit mode still show delete icon.)
    [self.tableView beginUpdates];
    [self.tableView endUpdates];

通过遵循以下答案,我能够实现我想要的目标:

https://stackoverflow.com/a/5664207/472344