【问题标题】:IOS display array of last 10 search string when click at UISearchBarIOS在UISearchBar点击时显示最后10个搜索字符串的数组
【发布时间】:2017-06-25 14:00:51
【问题描述】:

我正在使用UICollectionViewController 开发应用程序。我正在使用UISearchController 实现搜索功能。这是我所做的:

var searchController: UISearchController!

override func viewDidLoad() {
        searchController = UISearchController(searchResultsController: nil)
    searchController.delegate = self
    searchController.searchBar.delegate = self
    searchController.searchResultsUpdater = self
    searchController.searchBar.placeholder = "Search for article"
    searchController.hidesNavigationBarDuringPresentation = false
    self.navigationItem.titleView = searchController.searchBar
    searchController.searchBar.sizeToFit()
    definesPresentationContext = true
}

问题是,当用户点击UISearchBar 时,我们如何显示最近搜索字符串的 10 个列表?并检测用户是否点击了任何先前的搜索结果(重新加载 collectionView 以显示过滤结果)。

【问题讨论】:

    标签: ios uisearchdisplaycontroller


    【解决方案1】:

    您必须自己实现它。每当用户单击 UISearchBar 时,就会调用一个委托,您可以在其下方显示一个附加的 UITableView,列出 10 个最近的搜索(如果有的话)。

    当用户搜索某些内容时,将其添加到您维护的最近搜索数组/队列中。

    如果用户点击任何最近搜索过的项目,即UITableView,将调用didSelectRow委托,您可以搜索该字符串并重新组织最近搜索数组/队列。

    【讨论】:

    • 非常感谢您的帮助。也考虑一下。但问题是我使用 UICollectionViewController 并且 UISerachController 的搜索栏位于导航项中。不知道如何放置建议表视图
    • UICollectionView 之上添加一个UITableView 并使用适当的约束并最初隐藏它,一旦UISearchController 委托调用它使tableView 可见。
    • 但是使用 UICollectionViewController,没有办法在 collectionview 之上添加。也许需要使用 UIViewController 包含 UICollectionView 代替?
    • 是的,使用UIViewController,在上面添加UICollectionViewUITableView。这将是更好的方法。在这种情况下使用 UICollectionViewController 将无济于事。
    猜你喜欢
    • 1970-01-01
    • 2012-10-22
    • 2014-11-07
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 2014-11-24
    • 2018-04-18
    • 1970-01-01
    相关资源
    最近更新 更多