UITableView SearchBar过滤查询
我有一个很长的tableView,我可以搜索和过滤结果。UITableView SearchBar过滤查询
但是,如果我输入字母“i”作为输入, 所有带字母“i”的单词出现。 是否有可能以某种方式进行过滤,以便我键入的字母与我要过滤的单词的第一个字母相对应。
例如我的数组["should not use","Tristan","biscuit","is","should not use"]
,如果我查的单词"is"
,可以在Word自动单词 “饼干” 之前出现?
预期结果: [ “是”, “饼干”, “特里斯坦”]
您可以使用过滤器和排序的函数来得到预期的结果。
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)
输出
[ “是”, “伊瑟尔”, “饼干”, “特里斯坦”]
纠正我,如果我错了,但不是这个条件的关键字字符串给出的值? –
你可以用你的搜索栏文本替换关键字 –
我看到你在说什么,但我质疑它的效率。我可以根据单词中的字符数来搜索吗? –
我相信这是一个非常类似的问题:HTTPS:/ /*.com/questions/38718005/filter-and-sort-swift-array – huwr