如何重置UITableView的滚动位置?

jpm*_*jpm 18 iphone cocoa-touch scroll uitableview

我想完全重置UITableView的滚动位置,这样每次打开它时,它都会显示最顶层的项目.换句话说,我想在每次打开时将表视图滚动到顶部.

我尝试使用以下代码,但看起来我误解了文档:

- (void)viewWillAppear:(BOOL)animated {
    [tableView scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionTop animated:NO];
}
Run Code Online (Sandbox Code Playgroud)

这是错误的做法吗?

Mik*_*ter 34

August获得了特定于UITableView的方法.另一种方法是:

[tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];
Run Code Online (Sandbox Code Playgroud)

此方法在UIScrollView中定义,UIScrollView是UITableView的父类.上面的例子告诉它滚动到0x的1x1框 - 左上角,换句话说.


Aug*_*ust 6

您正在使用的方法滚动到(如方法名称所示)最近的选定行.在许多情况下,这不会是最重要的一行.相反,你想要使用其中之一

scrollToRowAtIndexPath:atScrollPosition:animated:
Run Code Online (Sandbox Code Playgroud)

要么

selectRowAtIndexPath:animated:scrollPosition:
Run Code Online (Sandbox Code Playgroud)

在哪里使用要滚动到的行的索引路径.第二种方法实际上选择了一行,第一种方法只是滚动到它.