代码之家  ›  专栏  ›  技术社区  ›  Nava Carmon

更改uitableview后,从自定义单元格更新它

  •  0
  • Nava Carmon  · 技术社区  · 16 年前

    我已经从自定义UITableViewCell类实现了编辑菜单。从自定义表单元类内部更新表视图有一个小问题。最好的方法是什么?

    短暂性脑缺血发作

    点击&时显示菜单;抓住桌子上的单元格。该表是从UITableViewController派生并动态创建的(不是从xib)。允许对文件夹执行剪切/复制操作;文件,而粘贴操作只允许用于文件夹。实际上,我只需要刷新文件夹单元格,它显示了里面的项目数。

    因此,在粘贴选择器中的CustomCell中,我执行以下操作:

    - (void)paste:(id)sender {
      ... Perform a paste of data...
      MyTableViewController  *myTable = (MyTableViewController  *) delegate;
      [myTable performSelector:@selector(updateData) withObject:nil afterDelay:0.3];
    }
    

    在MyTableViewController中:

    - (void) updateData
    {
       [self.tableView reloadData];
    }
    

    问题是除了一个被改变的细胞外,所有的细胞都被重新绘制。我在cellforrowatinex函数中看到它。即使我添加了粘贴选择器[self-setNeedsDisplay],也没有帮助。

    另外,我的自定义单元格覆盖setHighlighted函数:

    - (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
      if (delegate)
        [delegate copyableTableViewCell:self willHighlight:highlighted];
      [super setHighlighted:highlighted animated:animated];
    }
    

    同样的问题是为什么改变的单元格不刷新?

    谢谢

    2 回复  |  直到 16 年前
        1
  •  0
  •   user289841 user289841    16 年前

    是要更新单个单元格还是更新整个tableview?什么样的代表,或者选择者呢?

        2
  •  0
  •   Nava Carmon    16 年前

    断然的。调用MyTableViewController:

    - (void) updateData
    {
       [self.tableView performSelector:@selector(reloadData) withObject:nil afterDelay:0.3];
    }
    

    推荐文章