Почему серый overlay покрывает весь контроллер по нажатию на поле поиска в UINavigationBar?

iOS 11. Пытаюсь сделать аналогичный UINavigationBar что есть в стандартном мессенджере:
59f32c54bed4f255710546.jpeg
А на деле выходит следующее:
59f32c6c0ea1e651427105.jpeg
Всё выглядит аналогично, но вот когда нажимаешь на поле ввода эта серость закрывает полностью всё, включая UINavigationBar и кнопку "Cancel". Даже на поле ввода нельзя нажать (чтобы поменять позицию курсора и т.д.) т.к. происходит нажатие на серый overlay и отменяется поиск. Как сделать такое же поведение как в мессенджере?

viewDidLoad:
// Large title display mode
navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.largeTitleDisplayMode = .always

// Prepare search bar
let searchController = UISearchController(searchResultsController: nil)
searchController.searchBar.delegate = self
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = true
  • Вопрос задан
  • 242 просмотра
Пригласить эксперта
Ответы на вопрос 1
@freeg0r
.. some dude ..
потому что это как бэ дает понять пользователю, что сейчас это не результаты поиска пока, как только вы начинаете ввод в поисковую строку, появляются результаты уже на светлом фоне. такая вот задумка дизайнеров UI от apple, правда топ бар не должен темнеть, попробуйте поменять настройки, может это из за
navigationItem.hidesSearchBarWhenScrolling = true
Не надо боятся этого затемнения, iOS юзеры знают и привыкли к такому поведению.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы