我想知道是否有一种修改UITableView的方法,当你滚动到最后一个单元格时,单元格开始重复...并且你可以无限期地滚动,只是为了呈现相同的单元格重复和过度。理想情况下,这也可以反向工作(如果向上滚动而不是向下滚动)。
我无法在网上找到任何关于这个主题的信息,这些信息一直让我觉得它无法完成或者很难......但我想我会问这里是否有人可以帮助我。
答案 0 :(得分:1)
实际上这很微不足道。
我过去为实现这一目标所做的是:
假设您有一个 N 行数的tableView。 如果所有线条都相同,它将有所帮助。我们假设 S 为每个的高度。
您可以像这样实现dataSource方法:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return N*1000;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSInteger actualRow = indexPath.row % N;
// .. do everything using actualRow instead of indexPath.row
}
现在,在您使用delegate和dataSource以及诸如此类的设置tableView之后的viewController上。加上这个:
[tableView setContentOffset:CGPointMake(0,500*N*S)];
基本上你已经创建了一个非常大的重复单元格的tableView,并让它从中间开始。你将有500个实例在顶部和底部都经过,所以你肯定不会到达它的末尾。由于您将重复使用单元格,因此不会对性能产生影响。