タイトルが示すように、ViewController によって仲介される FetchedResultsController に接続されている UITableView を使用しています。
遅延は、ユーザーがグリッドの下部近くまでスクロールし、ユーザーに表示するデータをさらにフェッチするときに発生します。データが受信され、テーブルビューのコンテンツが大きくなると、スクロールが一時的に一時停止し、その後少しスタッタリングが続き、スクロールバーが高くジャンプして、最終的にすべてがスムーズに戻ります。これは次の場所で発生します。
-(void)controllerDidChangeContent:(FetchedResultsController *)controller {
[tableView reloadData];
}
AppleのドックとSOを精査して見つけたすべての最適化を行いました。
必要に応じてビューを再利用します。これは、パフォーマンスに最も役立ちました。セルの初期化はほとんどヒットしません。
imageview を使用する前に、バックグラウンド スレッド (コンテキストで描画) で画像をデコードします。(セルの「ロード」UIを置き換える画像を取得する前に、スタッターが発生することに注意してください)。
非常に短くて速いデリゲート メソッド。
不透明な手描きのビュー。
UI スレッドをブロックせず、スクロールバーのジャンプを防止する UITableView への行の追加の処理に関する推奨事項はありますか? [tableView insertRows...] を使用してみましたが、同じ吃音とスクロールバーのジャンプが発生しました。これは奇妙だと思いました。
乾杯、ゼッド