iOS - 搜索数字并在该位置滚动

时间:2017-03-04 14:07:10

标签: ios swift uitableview uisearchbar

我尝试在tableview中实现自定义搜索栏。我的表由数字组成。 在搜索栏中,我想从我要查找的表格中输入数字,然后点击搜索按钮 - >表格滚动到数字的位置。 但我不明白该怎么做。我在互联网上找不到任何东西。也许有人可以帮助我。

2 个答案:

答案 0 :(得分:1)

您必须拥有一个用于 tableView 的dataSource的模型。 我接近绝对肯定,这是一个数组。

所以,滚动你需要两个步骤:

  • 1)找到您在 searchBar 中输入的元素的索引。这可以通过循环您的数组并将每个元素与您输入的元素进行比较(或使用过滤器函数)来完成。
  • 2)如果找到了某些内容(元素存在),请创建一个 IndexPath 类型 变量与该索引和第0部分(如果您的 tableView 有一个 部分 - 默认情况下确实如此),并调用 tableView
  • 的方法 scrollToRow

示例:

let numbers = [1, 2, 3, 4, 5]

我搜索过“ 4

if let intToSearch = Int(searchString),
   let index = numbers.index(of: intToSearch) {
    let path = IndexPath(item: index, section: 0)
    tableView.scrollToRow(at: path, at: .bottom, animated: true)
}

答案 1 :(得分:0)

使用表格视图时,我们为其提供数据源。这是一些对象的集合。当您“搜索”时,您确定我们的集合中的对象是否与搜索词相关。这是基于您的设计的某种比较。

因此,您可以制作第二个“已过滤”的集合并告诉表格更新(仅显示相关的搜索结果)。或者您可以找到第一个匹配并告诉您的表视图滚动到该索引。使用tableview:scrolltoindex