iOS 11 предпочитает, чтобы большие титры не расширялись после изменения ориентации - PullRequest
0 голосов
/ 24 августа 2018

Я реализовал функцию iOS 11 prefersLargeTitles , и она работает просто отлично. Портретный режим работает как положено:

enter image description here

Я понимаю, что большой заголовок всегда будет свернутым (маленьким) в ландшафтном режиме, и это хорошо для меня. Проблема заключается в том, что когда я пытаюсь изменить альбомную ориентацию, а затем снова на книжную, большой заголовок должен быть расширен (большой) по умолчанию обратно в портретном режиме, но этого не произойдет, пока я немного не прокрутите вниз:

enter image description here

Мой код выглядит довольно просто:

if #available(iOS 11.0, *) {
  navigationController?.navigationBar.prefersLargeTitles = true
  navigationItem.largeTitleDisplayMode = .always
}

Я также пытался использовать разные значения для tableView.contentInsetAdjustmentBehavior , ничего не изменилось. Я вроде решил эту проблему, прокручивая таблицу программно после изменения ориентации, но я думаю, что это всего лишь (не очень хороший) обходной путь.

Это должно работать как положено? Это что-то осталось в моей реализации? Есть ли лучший обходной путь к этому?

1 Ответ

0 голосов
/ 04 августа 2019

Одним из подходов может быть сохранение максимальной высоты панели навигации и установка ее во время вращения.

Примерно так:


var maximumHeight: CGFloat = 0

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {

        super.viewWillTransition(to: size, with: coordinator)

        guard let navigationController = navigationController else {
            return
        }

        if maximumHeight < navigationController.navigationBar.frame.height {
            maximumHeight = navigationController.navigationBar.frame.height
        }

        coordinator.animate(alongsideTransition: { (_) in

            navigationController.navigationBar.frame.size.height = self.maximumHeight

        }, completion: nil)
}

В альбомной системе система знает, что она должна изменить свой размер, поэтому вам не нужно об этом беспокоиться.

@ rassar @twofish

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...