Swift ios11 NavigationItem SearchBar不会完全隐藏

时间:2017-11-07 02:51:05

标签: ios swift ios11 swift4 uisearchcontroller

在iOS11 / Swift 4中向navigationItem添加搜索控制器时遇到问题。

基本上一切都按预期工作大部分,下拉将显示搜索栏和搜索工作正常。然而,当试图通过向后滚动来隐藏搜索栏时...栏不会完全隐藏并保持为细条(见下文)。

我已将我的搜索控制器声明如下:

let searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.scopeButtonTitles = ["All", "Samples"]
searchController.searchBar.delegate = self
navigationItem.searchController = searchController

之前(向下滚动以显示搜索栏):

enter image description here

之后(向上滚动隐藏):

enter image description here

3 个答案:

答案 0 :(得分:1)

正如本Apple forums thread中所述。

当此hidesSearchBarWhenScrolling的值为true时,只有当滚动位置等于内容视图的顶部时,搜索栏才可见,以防您使用UIViewController,该视图属性是一个普通的UIView(它不是UIScrollView的子类)。

相反,尝试使用UITableViewController或ScrollView,它应该按预期工作

答案 1 :(得分:1)

就我而言,只有在表格中有少量项目时才会发生这种情况。 我找到了一个非技术性的,但只是在列表中有> 10个项目时显示搜索栏的逻辑解决方案。无论如何只有少数项目时无需搜索。

答案 2 :(得分:-2)

尝试添加此

self.navigationItem.hidesSearchBarWhenScrolling = true