objective-c - UITableView reloadData 重复数据

标签 objective-c iphone ipad

我在 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/

相关文章:

ios - DismissViewcontroller 后方法不刷新数据

ios - 当我们过年时显示每个月的星期和日期列表

iphone - xcode 在模拟器和设备上安装速度很慢

iphone - 帮助在 UIWebview 中加载大图像?

iphone - ipad 未调用 didSelectAnnotationView

ios - 应用程序在 iPhone 中以黑屏启动

ios - 32 位和 64 位的 %d 格式

objective-c - 检查文件是否为空

iphone - 我可以为 iCloud 添加不备份 "Document Directory"吗

iphone - iPad 或 iPhone 支持 OpenGL ES 2.0 吗?