我正在创建一个类似于iPad Contacts的基于表格的界面,用户可以通过点击底部的空行来添加到行列表中。该表始终处于编辑模式,非空行应在左侧具有标准删除编辑图标。一旦用户开始输入最后一个空白行,就应该在左侧添加一个删除图标(并添加一个新的空行)。
有谁知道如何让UITableView按需更新编辑样式?一切正常,除了删除图标不会出现,直到用户将行滚出视图然后再返回视图。
这是我的editingStyleForRowAtIndexPath实现:
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView
editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (/* text field contains data */)
{
return UITableViewCellEditingStyleDelete;
}
else
{
return UITableViewCellEditingStyleNone;
}
}
答案 0 :(得分:11)
我昨天也遇到了同样的问题。您基本上必须切换表视图的编辑模式属性。完成后,它将刷新单元格的editingStyle。
这是为我提供技巧的代码:
self.tableView.editing = NO;
self.tableView.editing = YES;
这给我看起来与联系人应用程序完全相同的效果。它至少会刷新您的editingStyle。
答案 1 :(得分:0)
尝试在正在编辑的行上调用reloadRowsAtIndexPaths:withRowAnimation:
。 (我不确定这是否会破坏文本字段中的第一个响应者状态。)