Ios 当用户使用返回按钮查看UITableView以滚动到最后选定的行时
我有一个大约200行的桌面视图。当用户选择一行以查看详细信息,然后单击“上一步”按钮时,tableView始终返回到表的顶部 我想设置tableView以强制tableView自动滚动到用户上次选择的行 如何做到这一点?您调用了任何webservice调用或在ViewWillView中重新加载数据,或ViewDidDisplay只需从ViewWillDisplay中删除该webservicecall/reloadData,或ViewDidDisplay它会自动显示tableview中最后选定的单元格 或者另一种方式 savedScrollPosition表示将所选索引保存在didselectRow上Ios 当用户使用返回按钮查看UITableView以滚动到最后选定的行时,ios,swift,uitableview,swift3,Ios,Swift,Uitableview,Swift3,我有一个大约200行的桌面视图。当用户选择一行以查看详细信息,然后单击“上一步”按钮时,tableView始终返回到表的顶部 我想设置tableView以强制tableView自动滚动到用户上次选择的行 如何做到这一点?您调用了任何webservice调用或在ViewWillView中重新加载数据,或ViewDidDisplay只需从ViewWillDisplay中删除该webservicecall/reloadData,或ViewDidDisplay它会自动显示tableview中最后选定的单
我建议在用户按下单元格时,将选定的nsindepath存储在didSelectRowAtIndexPath方法中。 然后,在视图控制器中的VIEWWILLEXPEND或VIEWDIDEMAKER方法中,您的表视图仅被调用
tableView.scrollToRow(at: selectedIndexPath, at: .top, animated: true)
然后,它会将您的表格视图滚动到以前选择的单元格。将最后选择的行保存在NSUserDefaults中,并使用UITableView ScrollToRowatinexPath,如下所示: 目标-C: 斯威夫特:
重新加载UITableView后使用此选项。我认为您应该找出导致表格滚动到顶部的原因。您还可以保存所选的indexPath以滚动到用户上次选择的行。我想您调用了tableView reloadData in the viewWillsead fund,因此每次从其他ViewController返回时,它都会重新加载tableView。谢谢。我尝试了你的代码,希望y坐标能在相同的精确位置对齐,但相反,它会移到帧的顶部,行的高度更小。找不到获得精确y坐标的方法。
tableView.scrollToRow(at: selectedIndexPath, at: .top, animated: true)
[self.tableView scrollToRowAtIndexPath:lastSelectedIndex atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
self.tableView.scrollToRowAtIndexPath(lastSelectedIndex, atScrollPosition: UITableViewScrollPosition.Bottom, animated: true)