UIView под панелью навигации после полноэкранного режима

У меня есть приложение с панелью навигации. Когда я нажимаю на предварительный просмотр фотографии в своем приложении, она отображает фотографию в полноэкранном режиме. Но когда я закрываю полноэкранный режим, вид моего контроллера находится под панелью навигации.

Я видел на StackOverflow, что нужно было добавить эту строку:

self.edgesForExtendedLayout = []

Это работает, но создает другую ошибку. Поэтому я хотел бы знать, есть ли другая альтернатива?

ОБНОВЛЕНИЕ:

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


person BSK-Team    schedule 16.12.2016    source источник
comment
Какую еще ошибку он создает? В любом случае, начиная с iOS 7, это макет приложений iOS по умолчанию: представление UIViewController расширяется под панелью навигации, но вы можете управлять этим, используя края макета и другие свойства.   -  person Gianluca Tranchedone    schedule 16.12.2016
comment
Как устанавливаются рассматриваемые ограничения представления?   -  person Andrius    schedule 16.12.2016
comment
Перед размещением превью фотографий выставляю загрузчик, который сделал вручную. И добавлением этой строчки кода происходит сдвиг загрузчика.   -  person BSK-Team    schedule 16.12.2016


Ответы (1)


1- Сделайте панель навигации непрозрачной.

self.navigationController.navigationBar.translucent = NO;

2- Если вы используете Xib, проверьте «Руководства по макету безопасной области» в инспекторе файлов, как показано ниже. введите здесь описание изображения

3- А если хотите сделать программно то после добавления на просмотр

self.yourView.translatesAutoresizingMaskIntoConstraints = false;
if (@available(iOS 11, *)) {
    UILayoutGuide * guide = self.view.safeAreaLayoutGuide;
    [self.yourView.leadingAnchor constraintEqualToAnchor:guide.leadingAnchor].active = YES;
    [self.yourView.trailingAnchor constraintEqualToAnchor:guide.trailingAnchor].active = YES;
    [self.yourView.topAnchor constraintEqualToAnchor:guide.topAnchor].active = YES;
    [self.yourView.bottomAnchor constraintEqualToAnchor:guide.bottomAnchor].active = YES;
}
person Sourabh Shekhar    schedule 19.06.2020