18

UITableView のスクロール位置を完全にリセットして、開くたびに一番上の項目が表示されるようにしたいと思います。つまり、テーブルビューを開くたびに一番上までスクロールしたいのです。

次のコードを使用してみましたが、ドキュメントを誤解しているようです。

- (void)viewWillAppear:(BOOL)animated {
    [tableView scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionTop animated:NO];
}

これはここで間違ったアプローチですか?

4

4 に答える 4

34

August は UITableView 固有のメソッドを取得しました。それを行う別の方法は次のとおりです。

[tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];

このメソッドは、UITableView の親クラスである UIScrollView で定義されています。上記の例では、0,0 の 1x1 ボックス、つまり左上隅にスクロールするように指示しています。

于 2008-11-21T05:25:34.140 に答える
6

使用しているメソッドは、(メソッド名が示すように) 最も近い選択された行までスクロールします。多くの場合、これは一番上の行にはなりません。代わりに、どちらかを使用したい

scrollToRowAtIndexPath:atScrollPosition:animated:

また

selectRowAtIndexPath:animated:scrollPosition:

スクロール先の行のインデックス パスを使用します。2 番目のメソッドは実際に行を選択し、最初のメソッドは単純にスクロールします。

于 2008-11-21T05:06:47.220 に答える