смена кадров (поворот дисплея и т. д.). Вы можете решить это, например,
11 Apple переработала UISearchBar, сделав углы более круглыми и увеличивая высоту. Добавить UISearchBar к навигационной панели довольно просто, просто установив его как titleView элемента навигации с помощьюnavigationItem.titleView = searchBar
.
Тем не менее, в iOS 11, похоже, он работает не так, как ожидалось. Посмотрите на экраны, где мы сравниваем ту же настройку, используя iOS 10 и iOS 11
Вы можете четко видеть, что панель поиска увеличивает размер панели навигации, но кнопки панели не выровнены правильно. Также searchBar больше не использует доступное пространство слева.
Помещение панели поиска в вид оболочки, чтобы получить кнопку отмены на iPad, как описано здесьКнопка отмены не отображается в UISearchBar также больше не работает, так как панель поиска тогда вообще не видна.
Если кто-то имеет подобные проблемы или уже знает, как исправить / улучшить это, я был бы очень благодарен.
Это было построено, используя Xcode 9 Beta 4. Возможно будущие выпуски исправят эту проблему.
ОБНОВИТЬ:
Поскольку это не исправлено, мы решили использовать следующее решение. Мы добавили новый UIBarButtonItem в NavBar, который затем представляет новый ViewController, где мы помещаем только searchBar и ничего больше в NavBar, который, кажется, работает. Использование выбранного ответа может быть лучшим решением, поскольку Apple с iOS 11 хочет, чтобы мы использовали этот новый дизайн, даже если он не дает нам того результата, который мы изначально хотели. Другим способом решения этой проблемы может быть пользовательский SearchBar, но это уже другая тема.