Клон Candy Search от людей Wenderlich. Я добавил значок, чтобы показать / скрыть панель поиска.
Однако после удаления контроллера поиска из элемента навигации навигационная панель не возвращается к своему первоначальному размеру.
Кто-нибудь знает, как чтобы сделать это 1029 *? Я пробовал несколько вещей, но ни одна из них не сработала.
self.searchController.isActive = false
не имеет никакого значения.
Еще одна вещь, в этот момент разочарования, если вы теперь щелкните по строке, чтобы создать экземпляр контроллера деталей и вернуться, навигация бар вернулся к нормальной высоте!
Спасибо!
Смотрите скриншот:
Полный проект здесь: https://github.com/HerrDoktorBD/CVSearch
Соответствующий код:
lazy var searchController: UISearchController = {
let searchController = UISearchController(searchResultsController: nil)
searchController.searchBar.delegate = self
searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "Search Candy"
// scope bar
searchController.searchBar.scopeButtonTitles = [
"All",
"Chocolate",
"Hard",
"Other"
]
return searchController
}()
func showSearchBar(show: Bool) {
let sb: UISearchBar = searchController.searchBar
if show {
//print("show searchbar")
UIView.animate(withDuration: 0.3,
delay: 0.0,
options: .curveEaseOut,
animations: {
if #available(iOS 13, *) {
self.navigationItem.searchController = self.searchController
}
}, completion: { (status) in
sb.becomeFirstResponder()
})
}
else {
//print("hide searchbar")
UIView.animate(withDuration: 0.3,
delay: 0.0,
options: .curveEaseOut,
animations: {
sb.resignFirstResponder()
}, completion: { (status) in
if #available(iOS 13, *) {
self.navigationItem.searchController = nil
}
})
}
}