我必须将 UITableView 的初始滚动位置设置为第一行以外的行(例如,第二部分的第一行)。< / p>
在我的视图控制器的 viewDidLoad 中我写道:
- (void)viewDidLoad
{
// self.view is a container view, not UITableView
[super viewDidLoad];
[table scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1]
atScrollPosition:UITableViewScrollPositionTop animated:NO];
}
当屏幕加载时,滚动位置不立即设置。否则,当动画参数设置为YES时,立即设置位置而不进行任何动画。 发生了什么事?
为UITableView设置初始行位置的正确方法是什么?
答案 0 :(得分:0)
只是在黑暗中拍摄,但您是否尝试将此代码放入viewDidAppear {}?
答案 1 :(得分:0)
这不适用于viewDidLoad
或viewWillAppear
,因为当时很可能没有填充表格(至少不是我的情况)
一旦您的表加载并调用它,请尝试将其放入NSTimer中。
顺便说一句,我很快将这段代码(带动画)放入导航栏按钮项目中,并且在表格加载完毕后效果非常好。
答案 2 :(得分:0)
最好的地方应该是ViewDidAppear。此外,您应该在cellWillDisplay中调用scroll方法以确保。请记住在调用scroll方法之前检查indexPath