我正在尝试将我的tableview滚动到第二个单元格:
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0]
atScrollPosition:UITableViewScrollPositionNone
animated:NO];
我收到错误:
*** Terminating app due to uncaught exception 'NSRangeException', reason: '-[UITableView scrollToRowAtIndexPath:atScrollPosition:animated:]: section (1) beyond bounds (0).
我的tableview有30个单元格,没有任何部分。
答案 0 :(得分:10)
当我得到一个单节表的相同错误消息时,我通过创建一个包含行和节的NSIndexPath来修复它:
NSIndexPath *ip = [NSIndexPath indexPathForRow:itemCurrentlyPlaying inSection:0];
这不容易找到,但相关的便利构造函数在此处记录:
答案 1 :(得分:3)
如果您没有任何部分,那么您可以尝试indexPathWithIndex:
类构造函数:
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathWithIndex:1]
atScrollPosition:UITableViewScrollPositionNone
animated:NO];
答案 2 :(得分:2)
与pollyp一样,我可以使用indexPathForRow:inSection:
。我是从viewWillAppear:
打来的。
看起来您的错误消息表明甚至没有一个部分。您是否可以在加载表格数据之前调用scrollToRowAtIndexPath:atScrollPosition:animated:
(例如在viewDidLoad
中)?请稍后在viewWillAppear:
中调用它。
答案 3 :(得分:0)
我建议您创建一个部分来存储您的单元格。此部分可以没有标题,因此它在视觉上无法区分,这使您获得的是不必与预期的API路径作斗争的能力。