ios - 为什么在要求我的 TableView 滚动到顶部时我会收到 NSRangeException?

标签 ios objective-c uitableview

我正在使用由其他人制作的子类 tableView,它带有一个方法 loadObjects,该方法会导致 tableView 重新填充其单元格,但是它不会告诉 table view 返回顶部重新填充后。我试图通过以下方式实现此功能:

- (void)loadObjects{
    [super loadObjects];
    [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES];
}

但是一旦 loadObjects 被调用(当 TableView 想要初始加载时),我得到以下异常:

*** Terminating app due to uncaught exception 'NSRangeException', reason: 
'-[UITableView _contentOffsetForScrollingToRowAtIndexPath:atScrollPosition:]: 
row (0) beyond bounds (0) for section (0).'

我将我编写的将表格 View 滚动到顶部的行转移到另一个自定义方法,每当我按下按钮时调用该方法,它工作得很好,所以我覆盖 loadObjects。有谁理解抛出的异常?

最佳答案

在调用 scrollToRowAtIndexPath 之前测试重新加载 tableview。

[self.tableView reloadData];

关于ios - 为什么在要求我的 TableView 滚动到顶部时我会收到 NSRangeException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19758735/

相关文章:

ios - 在 ios 中的 Tableview 中的 NSArray 中添加值

ios - 我可以以编程方式在 Assets 目录之间切换吗?

ios - tableView reloadData 在文档目录中删除后不重新加载数据

iphone - UITableView 已加载(完成绘制单元格)

ios - 无法使用 '[Array<String>]' 类型的索引为 '(section)' 类型的值添加下标。类型'(又名 'section.Type' )

ios - UISearchBar 书签图标没有隐藏在滚动条上

objective-c - 分配的对象的潜在泄漏 - 不知道为什么

iphone - objective-c 中以^开头的对象是什么意思

ios - 在 IOS 11 之前如何以编程方式获取安全区域的高度?

ios - 如何从套接字连接读取字典列表?