Высота UISearchBar не возвращается к предыдущему значению после закрытия контроллера поиска - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь добавить панель поиска с панелью области действия на панели навигации.

searchController = UISearchController(searchResultsController: nil)
let searchBar = searchController.searchBar
searchBar.scopeButtonTitles = ["Clients", "Vendors"]
searchBar.showScopeBar = true
navigationItem.searchController = searchController

Это работает изначально и при поиске, но после закрытия контроллера поиска панель навигации возвращается кменьший размер, скрывая область видимости.

Initial

After dismissing search

Согласно иерархии просмотра захватаинструмент, это фактический UISearchBar, который сжимается в размере, поэтому я попробовал несколько хаков, чтобы увеличить его:

  • переопределение didDismissSearchController и:
    • вызов sizeToFit() на панели поиска,и navigationController?.navigationBar
    • , устанавливающий высоту рамки панели поиска
    • , устанавливающий heightAnchor панели поиска в постоянное значение
    • , вызывающее setNeedsLayout() и layoutIfNeeded() на панели навигации

Я также попытался добавить панель поиска в заголовок табличного представления, но с той же проблемой: панель сжимается после прекращения поиска.Так что это не потому, что оно находится на панели навигации, а из-за панели видимости.

...