滚动时禁用隐藏搜索栏
disable hiding searchBar when scrolling
我正在编码以设置搜索栏(不是来自故事板)
这是我与搜索栏相关的代码:
var searchController = UISearchController(searchResultsController: nil)
func setupNavBar() {
self.navigationItem.title = "Tools"
self.navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.hidesSearchBarWhenScrolling = false
}
func configureSearchController() {
filteredData = toolsList.allTools
searchController.searchResultsUpdater = self
searchController.hidesNavigationBarDuringPresentation = false
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.searchBarStyle = .minimal
searchController.searchBar.tintColor = .purple
tableView.tableHeaderView = searchController.searchBar
searchController.searchBar.placeholder = "Search for tools"
}
override func viewDidLoad() {
super.viewDidLoad()
setupNavBar()
tableViewConfigurations()
configureSearchController()
}
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
isSearching = true
tableView.reloadData()
}
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
isSearching = false
tableView.reloadData()
}
虽然这行代码我要求在滚动时禁用隐藏搜索栏,但它仍然隐藏。
navigationItem.hidesSearchBarWhenScrolling = false
我可以请你指导我如何禁用它吗?
非常感谢
查看 Apple 的文档我发现了这个:
You must configure the searchController property for this property
[hidesSearchBarWhenScrolling] to have any effect. The navigation
controller hides and shows only the search bar provided by the search
controller in that property.
我会尝试将 searchController 添加到 navigationItem。
@very_supercharged 谢谢 我已将 searchBar 从 table 视图转移到 navigationBar
我已经改变了:
tableView.tableHeaderView = searchController.searchBar
至
navigationItem.searchController = searchController
并且现在,searchBar 不会在滚动时隐藏。
我正在编码以设置搜索栏(不是来自故事板)
这是我与搜索栏相关的代码:
var searchController = UISearchController(searchResultsController: nil)
func setupNavBar() {
self.navigationItem.title = "Tools"
self.navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.hidesSearchBarWhenScrolling = false
}
func configureSearchController() {
filteredData = toolsList.allTools
searchController.searchResultsUpdater = self
searchController.hidesNavigationBarDuringPresentation = false
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.searchBarStyle = .minimal
searchController.searchBar.tintColor = .purple
tableView.tableHeaderView = searchController.searchBar
searchController.searchBar.placeholder = "Search for tools"
}
override func viewDidLoad() {
super.viewDidLoad()
setupNavBar()
tableViewConfigurations()
configureSearchController()
}
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
isSearching = true
tableView.reloadData()
}
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
isSearching = false
tableView.reloadData()
}
虽然这行代码我要求在滚动时禁用隐藏搜索栏,但它仍然隐藏。
navigationItem.hidesSearchBarWhenScrolling = false
我可以请你指导我如何禁用它吗? 非常感谢
查看 Apple 的文档我发现了这个:
You must configure the searchController property for this property [hidesSearchBarWhenScrolling] to have any effect. The navigation controller hides and shows only the search bar provided by the search controller in that property.
我会尝试将 searchController 添加到 navigationItem。
@very_supercharged 谢谢 我已将 searchBar 从 table 视图转移到 navigationBar 我已经改变了:
tableView.tableHeaderView = searchController.searchBar
至
navigationItem.searchController = searchController
并且现在,searchBar 不会在滚动时隐藏。