Я пытаюсь добавить панель поиска с панелью области действия на панели навигации.
searchController = UISearchController(searchResultsController: nil)
let searchBar = searchController.searchBar
searchBar.scopeButtonTitles = ["Clients", "Vendors"]
searchBar.showScopeBar = true
navigationItem.searchController = searchController
Это работает изначально и при поиске, но после закрытия контроллера поиска панель навигации возвращается кменьший размер, скрывая область видимости.
Согласно иерархии просмотра захватаинструмент, это фактический UISearchBar, который сжимается в размере, поэтому я попробовал несколько хаков, чтобы увеличить его:
- переопределение
didDismissSearchController
и: - вызов
sizeToFit()
на панели поиска,и navigationController?.navigationBar
- , устанавливающий высоту рамки панели поиска
- , устанавливающий
heightAnchor
панели поиска в постоянное значение - , вызывающее
setNeedsLayout()
и layoutIfNeeded()
на панели навигации
Я также попытался добавить панель поиска в заголовок табличного представления, но с той же проблемой: панель сжимается после прекращения поиска.Так что это не потому, что оно находится на панели навигации, а из-за панели видимости.