gpt4 book ai didi

ios - UITableView 在底部加载更多单元格,多次调用方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:04:30 26 4
gpt4 key购买 nike

我正在开发一个简单的 iPhone 应用程序,它从 UITableView 中的 Web 服务(RSS 提要)加载数据。第一次加载应用程序时,我使用初始值为 1 的计数器来加载提要的第一页:

- (void)viewDidLoad
{
[super viewDidLoad];
counter = 1;
[self fetchEntriesNew:counter];
}

当用户向下滚动到 tableview 底部时,我使用以下方法通过递增计数器获取 rss feed 的下一页来在 tableview 中加载更多数据:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
float endScrolling = scrollView.contentOffset.y + scrollView.frame.size.height;
if (endScrolling >= scrollView.contentSize.height)
{
NSLog(@"Scroll End Called");
counter++;
[self fetchEntries:counter];
}
}

每当用户向下滚动到 tableview 的底部时,计数器就会递增,从而调用 rss 提要的下一页。至此,一切正常。

但是,如果用户在到达底部后向上滚动多次,计数器也会多次递增,因此会到达 rss 提要的不同页面并将其添加到表格 View 的底部。

更准确地说,如果用户到达底部并向上滚动 3 次,则不会加载第二页,而是加载第四页(滚动 3 次加上开始时已添加的 1 次)

如果之前的页面未加载,我如何限制不添加其他页面条目?

请不要建议在 tableview 或任何第三方库(如 NMPaginator 和 PartialTable 等)底部处理更多行的替代策略。提前致谢!

更新:

我通过一次又一次地运行应用程序来仔细观察它。似乎如果用户在 tableview 完成加载已经请求的页面数据(包括图像)之前滚动到底部(增加计数器),它只会忽略加载当前正在加载的数据并开始加载下一个数据基于递增的计数器。

最佳答案

能否请您检查以下代码并告诉我:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
float endScrolling = scrollView.contentOffset.y + scrollView.frame.size.height;
if (endScrolling >= scrollView.contentSize.height)
{
static int counterCheck = 0;
++counter;

if (counter - counterCheck == 1)
{
[self fetchEntries:counter];
++counterCheck;
}
else
--counter;
}
}

关于ios - UITableView 在底部加载更多单元格,多次调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15967874/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com