1

В нашем приложении, когда одно из представлений перемещается на навигационный контроллер, панель навигации отображается в течение 5 секунд, а затем мы устанавливаем navigationBarHidden в TRUE. Позже, если пользователь нажимает на экран, мы переключаем значения NavigationBarHidden. Но поскольку идентификатор навигационной панели скрыт или становится видимым, просмотр просматривается вверх и вниз соответственно для этих действий.просмотр переходов при скрытой навигационной панели

Есть ли способ предотвратить прыжок, когда панель скрыта или сделана видимой?

Спасибо и наилучшие пожелания, Hetal

ответ

3

Вы используете setNavigationBarHidden: или setNavigationBarHidden:animated:?

Попробуйте [navigationController setNavigationBarHidden:NO animated:YES];.

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

+0

анимация, кажется, работает на iPhone, но не на IPad. У вас есть идея, почему? – CedricSoubrie

5

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

Я добавляю ниже код в контроллер.

self.automaticallyAdjustsScrollViewInsets = NO; 

Надеюсь, это может вам помочь.

+0

Спасибо. Это помогает мне с представлением коллекции :) –

1

Я понимаю, что это старый разговор, но у меня были проблемы с этим в iOS 11 с некоторым ранее работающим кодом, и это был первый результат, который я продолжал получать в Google.

В моем случае у меня есть контроллер вида с контроллером навигации. Представление содержит вид прокрутки.

Если изображение прокрутки увеличено, положение прокрутки скачкообразно изменится после того, как панель навигации скроет/покажет анимацию.

Установка self.automaticallyAdjustsScrollViewInsets = NO/false не работает (там, где он прошел через iOS 10).

После долгих возиться, я понял, что в UIScrollView есть новое свойство, называемое contentInsetAdjustmentBehavior.

Мне нужно было установить это «никогда», чтобы получить желаемый эффект (то есть, позиция прокрутки не изменяется при отображении/скрытии панели навигации).

В стрижа это выглядит следующим образом: self.scrollView?.contentInsetAdjustmentBehavior = .never

+0

Как вы делаете scrollview простирающимся до верхней части панели навигации (так что нет скачка из-за изменения размера прокрутки при скрытии навигационной панели)? – Matt

+0

Шахта построена в раскадровке, и в моем случае у меня есть все три флажка, установленные для настроек «продлить края» контроллера вида: под верхними, нижними и непрозрачными краями. – Devin

Смежные вопросы