0

UITableViewの初期スクロール位置を最初の行以外の行(たとえば、2番目のセクションの最初の行)に設定する必要があります。

ビューコントローラのviewDidLoadに次のように記述します。

- (void)viewDidLoad
{
    // self.view is a container view, not UITableView
    [super viewDidLoad];
    [table scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1]
       atScrollPosition:UITableViewScrollPositionTop animated:NO];
}

画面が読み込まれると、スクロール位置はすぐには設定されません。それ以外の場合、アニメーションパラメータがYESに設定されていると、位置はアニメーションなしですぐに設定されます。どうしたの?

UITableViewの初期行位置を設定する正しい方法は何ですか?

4

3 に答える 3

0

これは機能しないviewDidLoadviewWillAppear、それまでにテーブルにデータが入力されていない可能性が高いためです(少なくとも私の場合はそうではありませんでした)

テーブルが読み込まれたら、代わりにNSTimerに入れて、呼び出してみてください。

余談ですが、このコード(アニメーション付き)をナビゲーションバーのボタンアイテムにすばやく配置すると、テーブルの読み込みが完了した後、非常にうまく機能しました。

于 2010-07-09T20:43:11.677 に答える
0

暗闇の中でのショットですが、このコードをviewDidAppear {}に入れようとしましたか?

于 2010-07-09T20:38:51.287 に答える
0

最適な場所は ViewDidAppear です。さらに、確認のために cellWillDisplay で scroll メソッドを呼び出す必要があります。scroll メソッドを呼び出す前に必ず indexPath を確認してください

于 2012-04-10T10:13:55.593 に答える