我有UITableView与单元格,我使用页脚(高度= 10pt)为每个部分,标题(高度= 64pt)为每个部分和单元格(高度= self.view.frame.size.hight - 64 - 10
)。
当我启动应用程序时,TableView仅加载第一个单元格(因为第二个单元格在屏幕上不可见),但我想加载第一个和下一个单元格。当我滚动到第二行时,我想加载第三个单元格。
我怎样才能实现这个目标?
答案 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]
后显示。