0

我在表格视图中有这么多单元格,说近 500 个。每个单元格都有自己的图像和字符串段落。实际上,我在 UIView 的 drawRect 方法的帮助下绘制了这些图像和字符串。所以我需要计算图像和每个字符串的位置(包括它们的宽度和高度来测量单元格高度和环绕区域)。如果我一次对所有单元格进行计算,则需要一些时间.. 那不好。我想快速显示单元格。所以我只想对可见单元格进行计算,并希望立即显示可见单元格。然后其他单元格的计算应该在后台进行。还有一件事,我将为每个单元格只计算一次。一旦我这样做了,我会将值存储在数组中。下次我将简单地根据数组值显示事物,而不是通过计算..

请任何人帮我做......我只是想知道这是否可能?如果是,实现它的程序是什么?

提前致谢...

4

3 回答 3

2

没有“程序”可以做到这一点。UITableView 总是以这种方式运行。您提供回调来告诉它有多少个部分和每个部分的行数,以及如何填充每个单元格。UITableView 只会要求您填充可见的单元格,甚至会在它们滚动到边缘时回收单元格(而不是无限地创建它们)。

于 2010-10-07T05:27:01.997 回答
0

您可以通过检索 UITableViewController 中的可见单元格

[self.tableView indexPathsForVisibleRows]

然后您可以对可见单元格进行处理。例如

for (NSIndexPath *path in paths ) {
// do some processing in [self.tableView cellForRowAtIndexPath:path]
}

我对 1000 多行使用自定义 drawrect 为每个单元格做了相同的自定义视图,并使用上述方法来优化单元格的加载。我的处理只发生在 ff 期间:

  1. 在加载 (viewDidLoad) 时,更新可见单元格。

  2. 当用户停止滚动时(滚动时默认为空白占位符)

于 2010-10-07T05:30:23.413 回答
0

我认为您可以使用 UITableView 的 visibleCells 属性。

UITableView *tableView;
NSArray *cells = tableView.visibleCells;
于 2010-10-07T05:30:59.213 回答