无限循环的UITableView

4
我想知道是否有一种方法可以修改UITableView,使得当你滚动到最后一个单元格之后,单元格开始重复...并且您可以不断地向下滚动,只会呈现相同的单元格反复出现。理想情况下,这也适用于反向滚动(如果您向上而不是向下滚动)。
我没有找到关于此主题的任何信息,这让我认为它可能无法完成或非常困难...但我想在这里询问是否有人可以帮助我。

你找到解决方案了吗? - abhimuralidharan
1个回答

3

其实这很简单。

我以前为了达到这个效果所做的是:

假设您有一个带有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

}

现在,在您的viewController或其他类中,当您设置了带有委托和数据源(delegate and dataSource)等的tableView之后,请添加以下内容:
[tableView setContentOffset:CGPointMake(0,500*N*S)];

基本上,你创建了一个非常大的tableView,由许多重复的单元格组成,并使其从中间开始。你需要在顶部和底部各遍历500个实例,所以肯定不会到达最后。由于您将重用单元格,因此这对性能没有影响。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接