我有tableview,并且某些单元格不在屏幕上。我正在努力让用户重新排序列表,但有时当前列表不在屏幕上。一个大概的例子是电子邮件的工作方式。如果您正在查看邮件,并且按发件人而不是日期进行发送,则您当前所处的邮件将保留在邮件列表中。
有没有办法让我向下滚动表格视图或其他东西,以便在屏幕上可以看到某个单元格?现在,我只知道如何求助数据数组并重新加载表...我想要的是在重新加载表之后确保屏幕上有一定的单元格。
如果我将其构造为练习,我将展示10个名称为1-10的名称数组,其中只有5个可以在屏幕上显示。轻按表格视图单元格后,将保存“ currentlySelected”的ID。在顶部放置2个按钮,按名称排序,按<123>按ID排序
如果我选择了2-steve,然后单击ABC按钮...我该如何做才能使2-steve出现在屏幕上,因为一次只能在屏幕上显示5个名称,并且按如下顺序对Steve进行了排序:位置7?
<ABC> <123>
1-dan
2-steve
3-ted
4-carol
5-anne
6-tony
7-linda
8-chris
9-blake
10- tom
答案 0 :(得分:1)
如果知道要滚动到的单元格的索引路径,则只需使用“表格视图”提供的方法即可:
if let indexPath = tableView.indexPathForSelectedRow {
self.tableView.scrollToRow(at: indexPath, at: .top, animated: true)
}
或者,通常:
let indexPath = IndexPath(row: 1, section: 0)
self.tableView.scrollToRow(at: indexPath, at: .top, animated: true)
注意:根据您的情况,该行应为[0 ... 9]范围内的值。