我有一个很长的 tableView,可以搜索和过滤结果。
但是,如果我输入字母“i”作为输入, 所有带有字母“i”的单词都会出现。 是否可以通过某种方式进行过滤,使我键入的字母对应于我要过滤的单词的第一个字母。
例如我的数组 ["should not use","Tristan","biscuit","is","should not use"]
如果我搜索单词 "is"
,那个词能自动出现在“biscuit”这个词之前吗?
Expected Result : ["is","biscuit","Tristan"]
最佳答案
您可以使用 filter 和 sorted 函数来获得预期的结果。
import UIKit
var theArray: [String] = ["biscuit", "Tristan", "is", "iser", "instrument", "look"]
var keyword: String = "is"
let result = theArray
.filter { $0.contains(keyword) }
.sorted() { ($0.hasPrefix(keyword) ? 0 : 1) < ($1.hasPrefix(keyword) ? 0 : 1) }
print(result)
输出
["is", "iser", "biscuit", "Tristan"]
关于arrays - UITableView SearchBar过滤查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46987207/