Ios 附加从网络返回的新单元格时,UITableView会出现不稳定的滚动

Ios 附加从网络返回的新单元格时,UITableView会出现不稳定的滚动,ios,objective-c,Ios,Objective C,在scrollViewDidScroll中,我检查表视图是否滚动到足够底部,如果是,则执行网络请求以从服务器获取新数据,当网络请求成功时,我更新数据模型,然后通过调用[tableView reloadData]更新tableView 症状是当网络请求完成并且新项目被添加到表中时,滚动性能不稳定 有人知道问题的原因吗?不要重新加载整个表视图 只需将数据添加到数据源并调用[tableView:insertRowsAtIndexPaths:withRowAnimation] 例如 // addNewD

在scrollViewDidScroll中,我检查表视图是否滚动到足够底部,如果是,则执行网络请求以从服务器获取新数据,当网络请求成功时,我更新数据模型,然后通过调用[tableView reloadData]更新tableView

症状是当网络请求完成并且新项目被添加到表中时,滚动性能不稳定


有人知道问题的原因吗?

不要重新加载整个表视图

只需将数据添加到数据源并调用[tableView:insertRowsAtIndexPaths:withRowAnimation]

例如

// addNewDataToDataSource(data)

[tableView beginUpdates];
[tableView insertRowsAtIndexPaths:indexes withRowAnimation:UITableViewRowAnimationAutomatic];
[tableView endUpdates];

驱动表的模型中有多少项?可能有几千项,但我早在从服务器获取<100项时就看到了快速滚动问题。但是这个问题并不能非常可靠地重新编程,所以我不确定如何开始调试。下载中有多少数据?处理需要多长时间?它是在主线程上运行的吗?它是放在核心数据还是其他数据存储中?如果你向下滚动,启动网络请求,然后在请求完成时开始向上滚动?如果问题只是在iOS重新绘制表格时的短暂瞬间,而你同时滚动表格,我认为这是意料之中的;过一会儿会不会变平滑?@Wain:网络结果将被解析为核心数据,但这一切都发生在后台线程中。是的,我认为更准确地说,当网络请求完成并且表格被重新绘制时,会发生起伏的滚动。