6

ビューコントローラーがロードされたときに特定の行にスクロールするように、テーブルビューを設定しました。このコードを viewDidLoad メソッドに挿入すると、期待どおりに動作します。

[thisTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:16 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES];

ただし、最後のビットを に変更するとanimated:NO、まったくスクロールしません。私はそれをアニメーション化しても問題ありませんが、私は疑問に思っています.animatedがNOに設定されている場合、スクロールしないのはなぜですか?

4

1 に答える 1

7

viewDidLoad では、tableView が空で、16 行目までスクロールできません。アニメーションが不要なため、呼び出しはすぐに評価されます

animation:YES を使用すると、ビューが表示されるまでアニメーションが遅延され、それまでにテーブルにデータが入力されます。

テーブルに既にデータが入力されている場合は、代わりに viewDidAppear (または viewWillAppear) でこの種のコードを使用することをお勧めします。ただし、これはビューが表示されるたびに呼び出されますが(ロジックを追加しない限り)、それが要件を満たしているかどうかはわかりません...

于 2012-05-01T22:29:15.020 に答える