がUITableView
データソースからのデータの要求をいつ終了したかを確認する方法はありますか?
関連するビューコントローラー()のviewDidLoad
/ viewWillAppear
/ viewDidAppear
メソッドはどれも、UITableViewController
早すぎるため、ここでは使用されません。それらのどれも(完全に理解できる)、データソースへのクエリが当面の間(たとえば、ビューがスクロールされるまで)完了することを保証しません。
私が見つけた1つの回避策は、を呼び出すことreloadData
ですviewDidAppear
。これは、reloadData
戻ったときに、テーブルビューがデータソースのクエリを当面必要なだけ完了することを保証しているためです。
ただし、データソースreloadData
が最初に読み込まれたときに、データソースに同じ情報を2回(自動的に1回、呼び出しのために1回)要求されるため、これはかなり厄介なようです。
これを実行したい理由はUITableView
、最も近い行だけでなく、ピクセルレベルまでのスクロール位置を保持したいからです。
(を使用してscrollRectToVisible:animated:
)スクロール位置を復元するとき、テーブルビューに十分なデータが既に含まれている必要があります。そうでない場合、scrollRectToVisible:animated:
メソッド呼び出しは何もしません(viewDidLoad
、viewWillAppear
またはのいずれかで呼び出しを独自に配置した場合に起こりますviewDidAppear
)。