UITableView - cellForRowAtIndexPath需要超过半秒钟

时间:2014-05-14 16:41:38

标签: ios performance uitableview lag

我用可重复使用的单元构建了一个UITableView。在我的代码中的某个时刻,我需要访问某个indexPath的单元格,所以我调用

MyCell *cell = (MyCell *) [tableView cellForRowAtIndexPath:indexPath];

有时(通常是第一次)调用它,可能需要0.5到1秒。

是什么导致这种情况,我该如何预防?

我检查了

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

被调用作为对cellForRowAtIndexpath的反应:但它没有。

编辑:

我刚做了另一个测试,如果我打电话

也需要很长时间
  [tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionMiddle];

无论先被称为什么,都会有半秒的延迟

1 个答案:

答案 0 :(得分:0)

首先调用[tableView reloadData],这可能会强制tableview加载其数据。但是,如果屏幕上看不到某个单元格,则可能无法将其加载到内存中。