Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: BSK-TeamОтветов: 1

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

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

self.edgesForExtendedLayout = []

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

ОБНОВЛЕНИЕ:

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

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

iosswiftnavigationbar

Ответы

Ответ 1 · Sourabh Shekhar

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;
}

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы