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

Posted

技术标签:

【中文标题】iOS - 搜索数字并在该位置滚动【英文标题】:iOS - search the number and scroll at that position 【发布时间】:2017-03-04 14:07:09 【问题描述】:

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

【问题讨论】:

【参考方案1】:

一定是你有一个模型用于tableView的dataSource。 我几乎可以肯定,这是一个数组。

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

1) 查找您在 searchBar 中输入的元素的索引。这可以通过循环遍历您的数组并将每个元素与您输入的元素进行比较来完成(或使用 filter 函数) 2) 如果找到某些东西(元素存在),则创建一个 IndexPath 类型 具有该索引和 section 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)

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于iOS - 搜索数字并在该位置滚动的主要内容,如果未能解决你的问题,请参考以下文章

在组件重新渲染时重置滚动位置

Bootstrap treeview 添加滚动条后 搜索完成滚动条自动移动到对应位置

在 iOS 8 中滚动时背景图像闪烁问题

iOS中的滚动位置

当内部元素滚动位置达到顶部/底部时防止父元素滚动?

iOS 8.4:滚动视图重置 contentOffset 并在视图出现后不久启用 Voice Over