根据某种逻辑在表格视图中显示某个单元格

时间:2018-12-10 07:06:17

标签: ios swift tableview

我有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

1 个答案:

答案 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]范围内的值。