如何重置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框,换句话说。
答
您正在使用的方法滚动到(如方法名称暗示的)最近的所选行。在很多情况下,这不会是第一行。相反,你要为使用
scrollToRowAtIndexPath:atScrollPosition:animated:
或
selectRowAtIndexPath:animated:scrollPosition:
,你用你想要滚动到该行的索引路径。第二种方法实际上选择一行,第一种方法简单地滚动到它。
+0
在动画序列开始的过程中,这些功能对我来说并不适用于iOS 4.0。我不得不使用scrollRectToVisible:animated: – chrish 2010-09-29 23:45:26
这实际上是一种非常简洁的方法,因为您不必担心表格是否为空。当没有要显示的记录时,我有一个讨厌的崩溃去NSIndexPath(0,0)。 – 2008-11-21 10:53:51