根据内容更新UITableViewCell的编辑样式

时间:2011-04-11 14:03:03

标签: iphone cocoa-touch ios uitableview

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

有谁知道如何让UITableView按需更新编辑样式?一切正常,除了删除图标不会出现,直到用户将行滚出视图然后再返回视图。

这是我的editingStyleForRowAtIndexPath实现:

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

2 个答案:

答案 0 :(得分:11)

我昨天也遇到了同样的问题。您基本上必须切换表视图的编辑模式属性。完成后,它将刷新单元格的editingStyle。

这是为我提供技巧的代码:

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

这给我看起来与联系人应用程序完全相同的效果。它至少会刷新您的editingStyle。

答案 1 :(得分:0)

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