Как исправить анимацию щелчка UISearchBar при переходе контроллеров представления?
Начиная с iOS 11 (и выше) я пытаюсь включить большие заголовки (с UISearchController
). Один из моих экранов не имеет UITableView
как первый ребенок в иерархии (а точнее UIPageViewController
, это потому, что навигационная панель не свернута, потому что scrollView
это не первый ребенок.. но из-за структуры не может.. во всяком случае, это не проблема).
Когда другой экран нажат (и этот экран имеет navigationItem
"s largeTitleDisplayMode
установлен в never
) анимация перехода выглядит странно (UISearchBar
закрыт от центра и не синхронизирован с анимацией навигационной панели).
Примечание: если выдвигаемый контроллер имеет largeTitleDisplayMode
установлен в .automatic
(или же always
) переход в порядке.
Фон
Когда prefersLargeTitle
включен, navigationItem
"s searchController
установлено, и первое представление иерархии не является табличным представлением (или я предполагаю, что потомок scrollView), навигационная панель показывает открытую панель поиска.
Варианты пробовал
Я пытался изменить translucent
собственность UINavigationBar
а также UISearchBar
, Также установите UINavigationBar's clipToBounds
,
Код
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .always
navigationItem.searchController = UISearchController(searchResultsController: nil)
}
}
class SecondViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.largeTitleDisplayMode = .never
}
}