6

我已经设置了一个表格视图,以便在其视图控制器加载时它会滚动到某一行。我将此代码放入 viewDidLoad 方法中,它按我的预期工作:

[thisTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:16 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES];

但是,如果我将最后一位更改为animated:NO,它根本不会滚动。我可以让它动画化,但我想知道:如果动画设置为 NO,为什么它不滚动?

4

1 回答 1

7

在 viewDidLoad 中,您的 tableView 是空的,因此无法滚动到第 16 行。立即评估调用,因为不需要动画

当您使用动画:YES 时,动画会延迟到显示视图,然后填充您的表格。

当您的表已经填充了数据时,您可能希望在 viewDidAppear(或 viewWillAppear)中使用这种代码。这将在每次呈现视图时调用它(除非您添加一些逻辑),但不确定这是否满足您的要求......

于 2012-05-01T22:29:15.020 回答