重新加载uitableview后滚动表格视图

Posted

技术标签:

【中文标题】重新加载uitableview后滚动表格视图【英文标题】:Scrolling the table view after reloading uitableview 【发布时间】:2009-11-06 14:38:40 【问题描述】:

在我的应用程序中,我想将单元格附加到当前表格视图,并在所有单元格都被附加后滚动到第一个添加的单元格。我通过调用附加到堆栈并调用 [tableview reloadData] 来完成附加代码。但是,我想知道是否有由 uitableview 发送的委托或通知,我可以使用它来指示表格何时重新加载,以便我可以滚动到选择。我最初认为 viewDidAppear 会被调用,但事实并非如此。有什么建议吗?

【问题讨论】:

【参考方案1】:

您可以删除reloadData 并使用insertRowsAtIndexPaths:withRowAnimation: 添加额外的行,然后scrollToRowAtIndexPath:atScrollPosition:animated: 可用于滚动到某一行。在我看来,以这种方式添加行更“干净”,而不是仅仅调用 reloadData,它可能也更快。

当使用insertRowsAtIndexPaths:withRowAnimation: 并且您添加的行不可见时,它们将不会被“加载”,一旦使用滚动方法将它们滚动到视图中,它们就会被“加载”。

关于 reloadData 方法完成后的通知,我很确定没有可用的通知。 UITableView 的唯一通知是UITableViewSelectionDidChangeNotification

【讨论】:

以上是关于重新加载uitableview后滚动表格视图的主要内容,如果未能解决你的问题,请参考以下文章

iPhone通过滑出表格视图来滚动UITableview

UITableView如何在重新加载后继续滚动

重新加载单元格高度变化的单元格时,UITableView 滚动到顶部

如何在 UITableView swift 3 中使用动画在底部滚动

如何更新表格视图单元格?

当我动态更改其框架时,即使重新加载后 UITableView 内容大小也不会更新