在 UITableViewCell 上设置编辑样式而不重新加载单元格

Posted

技术标签:

【中文标题】在 UITableViewCell 上设置编辑样式而不重新加载单元格【英文标题】:Set editing style on a UITableViewCell without reloading the cell 【发布时间】:2012-03-29 14:47:31 【问题描述】:

我正在构建一个视图控制器,它与处于编辑模式的联系人应用 ABPersonViewController 非常相似。

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

我有一种情况,如果有人开始输入新的电话号码(在该部分的最后一个单元格中),表格底部会添加一个新的空表格视图单元格,并且当前表格的编辑样式视图单元格设置为 UITableViewCellEditingStyleDelete,就像在 Contacts 应用中一样。

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

有没有办法在不重新加载的情况下改变 UITableViewCell 的编辑风格?或者另一种方式来完成我想要的?

【问题讨论】:

【参考方案1】:

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

【讨论】:

实际上这似乎对我不起作用。它对我调用它时是否显示删除按钮没有任何影响。【参考方案2】:

按照这里的答案,我能够完成我想要的:

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

【讨论】:

【参考方案3】:

我已成功设置编辑单元格,并应用以下代码进行多选:

    [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];

【讨论】:

以上是关于在 UITableViewCell 上设置编辑样式而不重新加载单元格的主要内容,如果未能解决你的问题,请参考以下文章

在普通样式表视图上设置 UITableViewCell 背景颜色?

编辑样式期间出现的 UITableViewCell 分隔线

在 UIScrollView/UIView 内设置 UITableViewCell 样式

使用 UIAppearance 设置 UITableViewCell 文本样式

具有分组样式的矩形角的 UITableViewCell

如何在通过 UITableViewCell 中的 XIB 加载的子视图中对标签和 UILabels/UIImageViews 进行初始样式设置