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

Aar*_*own 6 iphone objective-c uitableview ios

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

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

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

JP *_*sek 7

在viewDidLoad中,tableView为空,因此无法滚动到第16行.由于不需要动画,因此立即评估调用

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

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