根据内容更新UITableViewCell的编辑风格

我正在创build一个类似于iPad联系人的基于表格的界面,用户可以通过点击底部的空白行来添加到行列表。 该表始终处于编辑模式,非空行应在左侧具有标准的删除编辑图标。 只要用户开始在最后一个空白行中input,就应该在左侧添加一个删除图标(并添加一个新的空白行)。

有谁知道如何使UITableView按需更新编辑风格? 一切正常,除了删除图标不会出现,直到用户滚动视图,然后回到视图。

这是我的editingStyleForRowAtIndexPath实现:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { if (/* text field contains data */) { return UITableViewCellEditingStyleDelete; } else { return UITableViewCellEditingStyleNone; } } 

我昨天也遇到了同样的问题。 你基本上必须切换表视图的编辑模式属性。 这样做之后,它会刷新你的单元格的编辑样式。

这里是代码,为我做的伎俩:

 self.tableView.editing = NO; self.tableView.editing = YES; 

这给我看起来与联系人应用程序完全一样的效果。 至less,它会刷新您的editingStyle。

尝试在正在编辑的行上调用reloadRowsAtIndexPaths:withRowAnimation: (我不确定这是否会扰乱文本字段上的第一个响应者状态。)