Как исправить анимацию щелчка UISearchBar при переходе контроллеров представления? - PullRequest
0 голосов
/ 23 января 2019

Начиная с iOS 11 (и выше) я пытаюсь включить большие заголовки (с UISearchController).Один из моих экранов не имеет UITableView как первый дочерний элемент в иерархии (а скорее UIPageViewController, это потому, что навигационная панель не свернута, потому что scrollView не первый дочерний элемент ... но из-за структуры структурыне могу .. во всяком случае, это не проблема).

Когда нажимается другой экран (и на этом экране navigationItem s largeTitleDisplayMode установлено never), анимация перехода выглядит странно (UISearchBar закрыт от центра и не синхронизирован с анимацией навигационной панели).

Примечание. Если для толкаемого контроллера largeTitleDisplayMode установлено на .automatic (или always), переходв порядке.

Фон

Когда prefersLargeTitle включен, navigationItem s searchController установлен, и первое представление иерархии не являетсяtableView (или, я думаю, scrollView потомок), панель навигации показывает панель поиска открытой.

Опции опробованы

Я попытался изменить свойство translucent UINavigationBar иUISearchBar.Также установите UINavigationBar 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
    }

}

enter image description here

...