我在 UIView 上有 3 个 UITableView,其中我从 NSMutableArrays 加载 3 个不同的数据集。如果我调用 [myTableView reloadData] 数据类型会重新加载 - 它实际上会与已有的内容一起添加到表中。因此,3 次调用 reloadData 会产生三重列出的信息。
如何防止这种情况发生,或者如何在重新加载之前清除我的 tableView?
最佳答案
造成这种情况的最常见原因是没有重用表格 View 单元格。如果为数组中的每个逻辑行创建一个新单元格(而不是出列和重用),则 TableView 可能会继续显示所有单元格。 (**编辑:**可能不会发生。)
如果不是这样,那么它将在 reloadData
调用的三个方法之一中:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
表格 View 仅显示数据。如果表重复,那么您很可能在代码中的某个地方复制了数据。您要确保其中之一不会导致再次读取数组的原始源并将其附加到向表提供数据的 MutableArray。
关于objective-c - UITableView reloadData 重复数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3199226/