在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
之前(向下滚动以显示搜索栏):
之后(向上滚动隐藏):
答案 0 :(得分:1)
正如本Apple forums thread中所述。
当此hidesSearchBarWhenScrolling
的值为true时,只有当滚动位置等于内容视图的顶部时,搜索栏才可见,以防您使用UIViewController,该视图属性是一个普通的UIView(它不是UIScrollView的子类)。
相反,尝试使用UITableViewController或ScrollView,它应该按预期工作
答案 1 :(得分:1)
就我而言,只有在表格中有少量项目时才会发生这种情况。 我找到了一个非技术性的,但只是在列表中有> 10个项目时显示搜索栏的逻辑解决方案。无论如何只有少数项目时无需搜索。
答案 2 :(得分:-2)
尝试添加此
self.navigationItem.hidesSearchBarWhenScrolling = true