【问题标题】:How to show suggestions while searching in iOS?如何在 iOS 中搜索时显示建议?
【发布时间】:2017-04-27 06:38:00
【问题描述】:

我正在使用 Swift 3。我基本上是使用 API 来搜索来自网络的图像。我想在输入任何单词时向我的 searchBar 添加建议。例如,当我搜索“Sa”时,我会收到“Sand”、“Samsung”、“Sail”等建议。关于如何实现这一点的任何建议?

执行查询后得到的输出是 JSON 格式。

I want my Search Bar to look something like this

【问题讨论】:

标签: ios json swift xcode


【解决方案1】:

有多种方法。

您可以使用键盘附件。显示了键盘上的视图(通常是自动完成的位置),您可以按照自己喜欢的方式使用它,例如添加三个按钮,这将触发正确建议的输入。苹果在这里提供了一个例子:https://developer.apple.com/library/content/samplecode/KeyboardAccessory/Introduction/Intro.html#//apple_ref/doc/uid/DTS40009462-Intro-DontLinkElementID_2

另一种方法是在当前视图上放置一个视图(很可能是表格视图),放置在输入字段的正下方,或者具有固定高度,例如3 个项目或直到键盘。对于这种方法,您可以查看本教程:https://www.raywenderlich.com/336/auto-complete-tutorial-for-ios-how-to-auto-complete-with-custom-values

【讨论】:

  • 这些方法中的任何一种都会显示有结果的单词吗? @Nef10
  • 是的。例如。对于第二个教程:您将要自动完成的所有单词列表放在 searchAutocompleteEntriesWithSubstring 方法中的 pastUrls 变量中。
  • 我想创建一个我想要自动完成的所有单词的列表是不可能的,因为只有在我得到整个单词之后我才能执行查询。
  • 对不起,但您的问题过于宽泛。您应该问一个问题,如何生成一个单词列表以自动完成单独的表格如何呈现它。
【解决方案2】:

尝试像这样搜索我正在搜索具有名称的字典数组我在 UISearchBar 下方的 tableview 中显示所有结果搜索

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String)
{
    let namePredicate = NSPredicate(format: "name contains[c] %@", searchText)
    if HotelData.count > 0
    {
        searchData = (HotelData as NSArray).filtered(using: namePredicate) as [AnyObject]
        tlbSearch.reloadData()
    }
}

【讨论】:

  • 我知道我必须创建一个数组,其中包含一些 SearchBar 可以检查的单词。但我试图得到的建议是与结果相关的单词。
  • @BalvanshHeerekar 您需要在键盘的关键字建议中显示它
  • @BalvanshHeerekar 如果您将 tableview 设置在搜索栏最初隐藏的位置下方,我会看到随附的屏幕截图,您可以根据需要显示 tableview 工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-30
  • 1970-01-01
  • 2013-11-04
  • 2017-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多