正如标题所说,我正在使用一个连接到由 ViewController 调解的 FetchedResultsController 的 UITableView。
当用户滚动到接近网格底部并且我们获取更多数据以显示给用户时,就会发生延迟。当接收到数据时,tableview 的内容变大了,滚动暂停片刻,然后出现一些口吃,然后滚动条跳得更高,最后一切都恢复平滑。这发生在:
-(void)controllerDidChangeContent:(FetchedResultsController *)controller {
[tableView reloadData];
}
我已经完成了在 Apple 的底座和 SO 中找到的所有优化。
我应该重用视图。这对性能帮助最大。用于细胞的初始化几乎不会被击中。
在使用 imageview 之前在后台线程中解码图像(在上下文中绘制)。(请注意,在我们获得图像以替换单元格的“加载”用户界面之前,口吃就发生了)。
极短且快速的委托方法。
不透明的手绘视图。
有没有人有任何关于处理向 UITableView 添加行的建议,它不会阻塞 UI 线程并防止滚动条跳跃?我试过使用 [tableView insertRows...] 但同样的卡顿和滚动条跳跃发生了,我认为这很奇怪。
干杯,Zed