0

我必须将UITableView的初始滚动位置设置为第一行以外的行(例如,第二部分的第一行)。

在我的视图控制器的viewDidLoad我写:

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

屏幕加载时,不会立即设置滚动位置。否则,当animated参数设置为YES时,立即设置位置,没有任何动画。这是怎么回事?

为 UITableView 设置初始行位置的正确方法是什么?

4

3 回答 3

0

只是在黑暗中拍摄,但您是否尝试过将此代码放入 viewDidAppear{} 中?

于 2010-07-09T20:38:51.287 回答
0

这不起作用,viewDidLoad或者viewWillAppear因为那时很可能还没有填充表格(至少在我的情况下不是这样)

一旦你的表加载并然后调用它,请尝试将其放入 NSTimer 中。

顺便说一句,我很快将这段代码(带有动画)放入导航栏按钮项中,并且在表格加载完成后它工作得很好。

于 2010-07-09T20:43:11.677 回答
0

最好的地方应该是 ViewDidAppear。此外,您应该调用 cellWillDisplay 中的滚动方法以确保。记得在调用滚动方法之前检查 indexPath

于 2012-04-10T10:13:55.593 回答