要保留和加载每个数据源的表格视图滚动位置,您可以使用以下方法:
viewWillDisappear
方法中保存滚动位置:override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// 保存滚动位置
let contentOffset = tableView.contentOffset
UserDefaults.standard.set(contentOffset, forKey: "ScrollOffset")
}
viewWillAppear
方法中加载滚动位置:override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// 加载滚动位置
if let contentOffset = UserDefaults.standard.object(forKey: "ScrollOffset") as? CGPoint {
tableView.contentOffset = contentOffset
}
}
请注意,上述代码使用UserDefaults
来保存和加载滚动位置,您也可以使用其他方法,如Core Data或文件存储。
此外,还要确保在表格视图的数据源更新后重新加载表格视图数据。这可以通过在更新数据源后调用tableView.reloadData()
来实现。
希望这可以帮助到您!