为什么我的UITableView无法滚动,除非我告诉它为滚动设置动画?

时间:2012-05-01 22:11:23

标签: iphone objective-c ios uitableview

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

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

但是,如果我将最后一位更改为animated:NO,则根本不会滚动。我很喜欢它的动画,但我想知道:如果动画设置为NO,它为什么不滚动?

1 个答案:

答案 0 :(得分:7)

在viewDidLoad中,tableView为空,因此无法滚动到第16行。由于不需要动画

,因此立即评估调用

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

当您的表已经填充了数据时,您可能希望在viewDidAppear(或viewWillAppear)中使用此类代码。 这会在每次显示视图时调用它(除非你添加一些逻辑),不确定它是否符合你的要求......