【问题标题】:UITableView SearchBar filtering inquiryUITableView SearchBar 过滤查询
【发布时间】:2018-04-09 18:39:24
【问题描述】:

我有一个很长的 tableView,我可以搜索和过滤结果。

但是,如果我输入字母“i”作为输入, 所有带有字母“i”的单词都会出现。 是否可以以某种方式进行过滤,使我输入的字母对应于我要过滤的单词的第一个字母。

例如我的数组["should not use","Tristan","biscuit","is","should not use"]

如果我搜索单词"is"

,那个词会自动出现在“饼干”这个词之前吗?

预期结果: ["是","饼干","特里斯坦"]

【问题讨论】:

标签: arrays swift uitableview filter uisearchbar


【解决方案1】:

您可以使用过滤器和排序功能来获得预期的结果。

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)

输出

[“是”、“iser”、“饼干”、“特里斯坦”]

【讨论】:

  • 如果我错了,请纠正我,但这不是以关键字字符串的值为条件吗?
  • 您可以用搜索栏文字替换关键字
  • 我明白你在说什么,但我质疑它的效率。我可以根据单词中的字符数进行搜索吗?
  • 你的意思我不能理解你的意思,你能用例子详细说明一下吗
  • 我相信您的答案实际上是我想要的正确方法,但是,我不确定如何将它与您帮助我处理数组的其他代码合并。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-05
相关资源
最近更新 更多