我已经设置了一个表视图,以便在视图控制器加载时滚动到某一行。我将此代码放入viewDidLoad方法中,它的工作方式如下:
[thisTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:16 inSection:0]
atScrollPosition:UITableViewScrollPositionTop animated:YES];
但是,如果我将最后一位更改为animated:NO
,则根本不会滚动。我很喜欢它的动画,但我想知道:如果动画设置为NO,它为什么不滚动?
答案 0 :(得分:7)
在viewDidLoad中,tableView为空,因此无法滚动到第16行。由于不需要动画
,因此立即评估调用当您使用动画:是时,动画会延迟,直到显示视图,然后您的表格会被填充。
当您的表已经填充了数据时,您可能希望在viewDidAppear(或viewWillAppear)中使用此类代码。 这会在每次显示视图时调用它(除非你添加一些逻辑),不确定它是否符合你的要求......