如何重置UITableView的滚动位置?

问题描述:

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

我试着用下面的代码,但它看起来像我误解的文件:

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

这是这里的错误的做法?

8月份获得了UITableView特定的方法。另一种方法是:

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

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

+1

这实际上是一种非常简洁的方法,因为您不必担心表格是否为空。当没有要显示的记录时,我有一个讨厌的崩溃去NSIndexPath(0,0)。 – 2008-11-21 10:53:51

您正在使用的方法滚动到(如方法名称暗示的)最近的所选行。在很多情况下,这不会是第一行。相反,你要为使用

scrollToRowAtIndexPath:atScrollPosition:animated: 

selectRowAtIndexPath:animated:scrollPosition: 

,你用你想要滚动到该行的索引路径。第二种方法实际上选择一行,第一种方法简单地滚动到它。

+0

在动画序列开始的过程中,这些功能对我来说并不适用于iOS 4.0。我不得不使用scrollRectToVisible:animated: – chrish 2010-09-29 23:45:26