我想知道是否有一种方法可以修改UITableView,使得当你滚动到最后一个单元格之后,单元格开始重复...并且您可以不断地向下滚动,只会呈现相同的单元格反复出现。理想情况下,这也适用于反向滚动(如果您向上而不是向下滚动)。
我没有找到关于此主题的任何信息,这让我认为它可能无法完成或非常困难...但我想在这里询问是否有人可以帮助我。
我没有找到关于此主题的任何信息,这让我认为它可能无法完成或非常困难...但我想在这里询问是否有人可以帮助我。
其实这很简单。
我以前为了达到这个效果所做的是:
假设您有一个带有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
}
[tableView setContentOffset:CGPointMake(0,500*N*S)];
基本上,你创建了一个非常大的tableView,由许多重复的单元格组成,并使其从中间开始。你需要在顶部和底部各遍历500个实例,所以肯定不会到达最后。由于您将重用单元格,因此这对性能没有影响。