UITableView 在插入时滚动

Posted

技术标签:

【中文标题】UITableView 在插入时滚动【英文标题】:UITableView scrolling on insert 【发布时间】:2013-10-19 18:22:47 【问题描述】:

我正在处理使用分页的 Web 服务。我正在使用 UITableView 来显示结果。这个想法是一旦用户滚动到表格底部附近的某个地方,就会调用以获取新数据。收到数据后,数据将插入到表视图中,正常情况下是 [tableView beginUpdates] 、 [tableView inserItemsAtIndexPahts..] 和 [tableView endUpdates]。问题是,如果表格视图正在减速,并且同时插入单元格,减速动画将立即停止,使表格视图看起来“奇怪”。

有什么办法可以解决这个问题?

【问题讨论】:

试试这个:***.com/questions/5872759/… 问题不在于它在插入时滚动,而是它停止减速。 【参考方案1】:

尝试通过实现scrollViewDidEndDecelerating: 方法在停止减速时更新您的表视图。并且在减速时不要在表格视图中插入任何东西。

if (tableView.decelerating == NO) 
    // Insert.

【讨论】:

是的,我自己也弄明白了,但是当用户接近尾声时能够加载项目并让他滚动浏览就好像项目一直都在那里一样,这将是很酷的,在他/她停止滚动之前不要等待更新。 尝试使用[tableView reloadData]; 而不是[tableView beginUpdates] .. [tableView insertItemsAtIndexPaths..] .. [tableView endUpdates]。也许会有所帮助。

以上是关于UITableView 在插入时滚动的主要内容,如果未能解决你的问题,请参考以下文章

可滚动且与 UITable 滚动同步的背景图像

iOS:滚动 UITableView 时应用程序崩溃/内存被填充

UITableView 在插入时滚动

iOS UITableView在过滤时滚动插入

UITableView 在滚动时在顶部插入部分

使用 sectionForSectionIndexTitle 在 UITableView 中快速滚动