【发布时间】:2017-11-16 00:22:22
【问题描述】:
我正在尝试使用 UISearchController 在 iOS 11 中显示搜索栏和范围栏。
这是我用来设置搜索控制器的代码
let searchController = UISearchController(searchResultsController: nil)
searchController.delegate = self
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = false
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.showsScopeBar = true
searchController.searchBar.scopeButtonTitles = ["1", "2", "3", "4"]
searchController.searchBar.delegate = self
definesPresentationContext = true
我想要一个带有始终可见的范围栏的搜索栏。 当视图控制器加载时,上面的代码可以正常工作,它会显示搜索栏和范围栏。
但是,一旦搜索控制器激活然后被关闭,iOS 会在搜索控制器关闭时隐藏范围栏,并且只显示搜索栏。
我尝试通过在didDismissSearchController 中添加以下代码来解决此问题,但是范围栏和搜索栏彼此重叠,而不是搜索栏下方的范围栏(如下图所示)。将此代码添加到searchBarTextDidBeginEditing(_ searchBar: UISearchBar) 或searchBarTextDidEndEditing(_ searchBar: UISearchBar) 无效。
searchController.searchBar.showsScopeBar = true
searchController.searchBar.sizeToFit()
【问题讨论】:
标签: ios uisearchbar ios11 uinavigationitem uisearchcontroller