UITableView在更新NSFetchedResultsController时将滚动保持在正确的位置

时间:2012-07-01 16:48:56

标签: ios uitableview nsfetchedresultscontroller infinite-scroll

我正在开发一个主要使用UITableView的iOS应用程序。 它从服务器检索文章页面。我们有> 25000篇文章;所以我实现了一个pull-to-refresh和无限滚动来遍历标题集。 下载的内容使用核心数据保留; NSFetchedResultsController用于自动更新UITableView

但是,我实现了无限滚动在两个方向;上和下。由于用户将允许向下滚动25000篇文章标题,因此我必须删除用户已滚动的文章。如果用户向上滚动,我必须重新插入当前标题之上的标题。 这样做,我在文章集合中有一个移动的窗口。

我使用部分和标题按日期组显示我的文章。

问题在于,因为无限滚动是双向的,所以我经常在表格的较高位置删除或添加文章。 事实上,我必须改变与NSFetchedResultsController相关联的谓词。

滚动被混乱的结果。我已经让它跳回到它应该是ish的位置。它不是很好,因为它是一个跳跃(动画:NO),如果我把动画打开,它会在回到正确的位置之前四处走动。而且这个位置并不完全是应该的位置。

我不确定我是否解释了我的问题。我认为问题可能在于我使用UITableView的方式,但我不确定如何使用它来改善它。

干杯

1 个答案:

答案 0 :(得分:1)

如果您只在Core Data中存储文章标题,我认为它可以处理25.000个标题。

但是我认为你遇到的问题是表格中可见元素的分页

这是我用来处理你要求的东西的link。你必须稍微调整一下才能使用Core Data和远程源。

如果可以,请发布一些代码,以便我们查看。