代码之家  ›  专栏  ›  技术社区  ›  Slee

UITableView ReloadData重复数据

  •  3
  • Slee  · 技术社区  · 15 年前

    我在一个uiview上有3个uitable视图,其中我从nsmutableArrays加载3组不同的数据。如果我调用[MyTableView ReloadData]重新加载的数据类型-它实际上会与已经存在的数据一起添加到表中。所以3次调用reloaddata会产生三重列出的信息。

    如何防止这种情况发生,或者如何在重新加载前清除TableView?

    1 回复  |  直到 15 年前
        1
  •  1
  •   TechZen    15 年前

    最常见的原因是不重用TableView单元格。如果为数组中的每一个逻辑行创建一个新的单元格(而不是出列和重用),TableView可能会继续显示所有单元格。 (**编辑:**可能不会发生。)

    如果不是这样,那么它将是三种方法中的一种 reloadData 电话:

    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
    

    表视图只显示数据。如果表重复,那么您很可能在某个地方复制代码中的数据。您希望确保其中一个不会导致再次读取数组的原始源并将其附加到向表提供数据的mutableArray。

    推荐文章