【问题标题】:How to implement SearchBar NOT in Table Header如何在表头中实现 SearchBar NOT
【发布时间】:2016-01-03 22:09:45
【问题描述】:

我正在尝试对我的应用实施搜索。 之前看了好几篇教程,都推荐把Search Bar放到Table Header:

self.tableView.tableHeaderView = self.searchController.searchBar

搜索效果很好,但是有一个问题:当我滚动表格时,搜索栏消失了:

这不是我想要的。我想像在 iPhone 通讯录中一样执行搜索。

有什么想法吗?

可能有一个选项可以阻止 tableHeader 滚动出去(就像节标题留在屏幕上,而您可以看到此节中的任何单元格)

【问题讨论】:

    标签: ios swift uitableview uisearchcontroller


    【解决方案1】:

    如果你的父控制器有 UINavigationController,你可以将搜索栏粘贴在导航栏中,如下所示:

    self.navigationItem.titleView = _searchController.searchBar;
    

    或者,您可以在屏幕顶部创建一个空白 UIView 并将 UITableView 放在其下方。然后将 UISearchController 的搜索栏添加为空白视图的子视图,如 How do I set the UISearchController's searchBar to a view that isn't the tableHeaderView or navigationItem.titleview? 中所述。

    【讨论】:

    • 感谢您的链接 - 之前没找到。这正是我想要的!
    【解决方案2】:

    你可以使用 -

    func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?

    在章节标题上添加搜索栏的方法。如果只有一个部分,那么我认为这对您有用。

    【讨论】:

      【解决方案3】:

      可以通过以下方式快速完成:

      首先,如果您不希望导航栏在您开始在搜索栏中输入时隐藏,那么请写下这一行:

          searchController.hidesNavigationBarDuringPresentation = false;
      

      然后将搜索栏分配给 navigationItem 标题视图:

          self.navigationItem.titleView = self.searchController.searchBar;
      

      【讨论】:

        猜你喜欢
        • 2018-02-20
        • 2019-01-15
        • 2017-10-27
        • 2011-01-11
        • 2020-01-26
        • 2018-06-16
        • 2014-04-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多