Swift:navigationItem.hidesSearchBarWhenScrolling = true 时搜索栏仍然可见
Swift: searchBar still visible with navigationItem.hidesSearchBarWhenScrolling = true
在 Swift 中,我试图实现一个隐藏的 searchBar
,它在滚动时变得可见,
我正在使用这个
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = true
我试过移动上面的代码,但是无论在 ViewController
文件中的何处调用,searchBar
都是可见的。
有什么东西可以 overriding
这个功能吗?
文件中我引用 searchBar
或 searchController
的唯一其他代码如下:
if self.searchController.isActive && searchController.searchBar.text != "" {...
self.searchController.searchBar.placeholder = "Search \(title)"
func updateSearchResults(for searchController: UISearchController) {
if let searchText = searchController.searchBar.text, !searchText.isEmpty {
filteredArr = defaultArr.filter {...
func configureSearchController () {
//Setup the Search Controller
searchController.searchResultsUpdater = self
searchController.hidesNavigationBarDuringPresentation = true
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.searchBarStyle = .minimal
searchController.definesPresentationContext = true
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = true
}
// I call reloadData a few times throughout as well
tableView.reloadData()
我不确定以上任何一项会如何影响 hideSearchBarWhenScrolling = true
。
我很困惑这是怎么发生的,有人有什么建议吗?
如有任何帮助,我们将不胜感激。
tableView 的标签 "behind" 导致了问题:
searchBar 始终可见:
searchBar 按预期隐藏:
在 Swift 中,我试图实现一个隐藏的 searchBar
,它在滚动时变得可见,
我正在使用这个
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = true
我试过移动上面的代码,但是无论在 ViewController
文件中的何处调用,searchBar
都是可见的。
有什么东西可以 overriding
这个功能吗?
文件中我引用 searchBar
或 searchController
的唯一其他代码如下:
if self.searchController.isActive && searchController.searchBar.text != "" {...
self.searchController.searchBar.placeholder = "Search \(title)"
func updateSearchResults(for searchController: UISearchController) {
if let searchText = searchController.searchBar.text, !searchText.isEmpty {
filteredArr = defaultArr.filter {...
func configureSearchController () {
//Setup the Search Controller
searchController.searchResultsUpdater = self
searchController.hidesNavigationBarDuringPresentation = true
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.searchBarStyle = .minimal
searchController.definesPresentationContext = true
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = true
}
// I call reloadData a few times throughout as well
tableView.reloadData()
我不确定以上任何一项会如何影响 hideSearchBarWhenScrolling = true
。
我很困惑这是怎么发生的,有人有什么建议吗?
如有任何帮助,我们将不胜感激。
tableView 的标签 "behind" 导致了问题:
searchBar 始终可见:
searchBar 按预期隐藏: