调用reloadData时平滑UITableView滚动

Aha*_*kar 5 objective-c uitableview ios

我在用户滚动UITableView结束后使用一种方法从网上获取新项目.

当用户点击列表末尾时我在里面调用我的提取类:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)
Run Code Online (Sandbox Code Playgroud)

为了避免ui冻结并获取,从Serve r解析新项目.

这里没有延迟,但是当我尝试在我的表中重新加载数据并添加项目时

list(reladData)有一个小的打嗝是滚动.它约为0.4或0.5秒

在此期间,滚动将被冻结.

我甚至试图使用这种方法:

dispatch_async(dispatch_get_main_queue(), ^(void)
                                       {
    [self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:YES]
Run Code Online (Sandbox Code Playgroud)

而不是正常的reloadData,但滞后仍然是apear.

无论如何要避免这种情况,或者我应该创建消息/进度动画或其他东西

否则在这个滞后期间通知用户如"请稍候"弹出?