ios - 根据某种逻辑在 TableView 中显示某个单元格

标签 ios swift tableview

我有 tableview 并且一些单元格不在屏幕上。我正在努力让用户重新排序列表,但有时当前列表不在屏幕上。一个粗略的例子是电子邮件的工作原理。如果您在一条消息上并按发件人而不是日期求助,则您当前所在的消息将保留在消息列表中。

我是否有办法快速向下滚动表格 View 或其他方式,以便屏幕上可以看到某个单元格?现在我只知道如何求助于数据数组并重新加载表格...我想要的是在重新加载表格后在屏幕上保证某个单元格。

如果我将其构建为一个练习,我将呈现一个包含 10 个名称和 1-10 id 的数组,其中只有 5 个可以出现在屏幕上。一旦一个 tableview 单元格被点击,“currentlySelected”的 id 就会被保存。在顶部放置 2 个按钮,其中按名称排序,<123> 按 id

如果我选择 2-steve 然后单击 ABC 按钮...我怎样才能使 2-steve 出现在屏幕上,因为一次只能在屏幕上显示 5 个名字,而 steve 是 ABC 命令7号位?

<ABC>    <123>
1-dan
2-steve
3-ted
4-carol
5-anne
6-tony
7-linda
8-chris
9-blake
10- tom

最佳答案

如果您知道要滚动到的单元格的索引路径,只需使用 TableView 提供的方法:

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

关于ios - 根据某种逻辑在 TableView 中显示某个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53700960/

相关文章:

kotlin - 如何将属性的属性绑定(bind)到 Tornado TableView 中的列?

Master/Detail Storyboard项目中的 IOS 导航栏在 ipad 上是透明的,但在 iphone 上不是

ios - 阿拉伯文本的 URL 解析错误

java - 有没有人想出如何使 javafx tableview 像 jtable 一样工作?

ios - Iconset Unicode 表情符号(ios7,whatsapp)?

ios - iOS 每隔一段时间用麦克风录音

ios - 在初始屏幕 iOS 8 上强制使用深色状态栏文本颜色

ios - 即使在退出 View Controller 后也将数据保存为 UserDefault

iOS8:IScreen.mainScreen().bounds 无法可靠地用于方向更改。建议?

java - 如何从 TableView 中删除大量选定的行?