Предотвращение анимации переходов UINavigationController вверх со смещением в iOS 11?

Я обновляю приложение с iOS 10 до iOS 11 с целью iOS 9, и это происходит при каждой анимации перехода, когда задействована панель навигации.

Анимация начинается с небольшого смещения ниже, чем высота, на которой она должна быть, а затем перемещается на правильную высоту к тому времени, когда представление закончило анимацию.

Я не делаю ничего особенного с навигационными контроллерами, и это происходит с каждым в приложении. Если я программно скрою панель навигации, переходы анимируются нормально.


person Kevin Stewart    schedule 16.08.2017    source источник


Ответы (2)


Установка tableView.contentInsetAdjustmentBehavior на .never в UINavigationController устраняет проблему.

Редактировать. На самом деле лучшим решением будет вместо этого активировать параметр Under Opaque Bars для TableViewController.

В противном случае вертикальные полосы прокрутки будут позади выемки iPhone X в ландшафтном режиме. Это сработало для меня, потому что я использую непрозрачные полосы. Я не знаю, что произойдет, если вы используете полупрозрачные полосы.

введите описание изображения здесь


Оригинальное решение описано Принцем на форумах разработчиков Apple:

После некоторых исследований ... я обнаружил, что automaticallyAdjustsScrollViewInsets устарел в iOS 11, теперь мы должны использовать вместо этого contentInsetAdjustmentBehavior в представлениях типа UIScrollView. Установка contentInsetAdjustmentBehavior на .never сработала, а также «проблема перевода UINavigationController со слайдом вверх» не возникнет, если UINavigationBar полупрозрачный, где представление находится под панелью. (Таким образом, новый способ выполнения AutomaticAdjustsScrollViewInsets`)

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

person alexkaessner    schedule 06.10.2017

Направляющие верхнего/нижнего макета устарели в iOS11, и я думаю, что ваша проблема связана с этим. Таким образом, вы можете изменить ограничения, я думаю.

Подробнее читайте здесь.

person Tung Fam    schedule 16.08.2017