在UITableView中加载单元格

时间:2015-02-01 12:39:19

标签: ios uitableview

我有UITableView与单元格,我使用页脚(高度= 10pt)为每个部分,标题(高度= 64pt)为每个部分和单元格(高度= self.view.frame.size.hight - 64 - 10)。

当我启动应用程序时,TableView仅加载第一个单元格(因为第二个单元格在屏幕上不可见),但我想加载第一个和下一个单元格。当我滚动到第二行时,我想加载第三个单元格。

我怎样才能实现这个目标?

enter image description here

2 个答案:

答案 0 :(得分:1)

UITableView delegate methods为您提供了多种方法来跟踪屏幕上显示的细胞(即tableView:willDisplayCell:forRowAtIndexPath:)。

一种方法是跟踪显示的单元格,并手动加载+1和/或-1索引。

注意:您不应直接加载UITableViewCells,而应加载它们应显示的内容(根据M.V.C)。

答案 1 :(得分:0)

懒人装适合你,这意味着首先是可见的,当向下滚动第二个项目时应该准备就绪。

//存储所有项目

NSArray *allItems = @[].mutableCopy;

//加载前两个并存储到allItems

NSDate *first, *second;
allItems = @[first,second];

//向下滚动以及数据是否已准备好时,检查哪个单元格可见

1)path.section是可见单元格

NSIndexPath *path = [tableView indexPathForCell:aCell];

2)allItems count是您已加载的数据数

allItems.count = path.section + 1;

3)如果allItems.count == path.section,您应该加载下一个当前可见数据的下一个数据。

通过这两个条件,数据应始终准备就绪。 每次加载[tableView reload]后显示。