iOS Swift меняет изображение с ориентацией на iPad - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть приложение iOS, которое должно работать как в портретном, так и в ландшафтном режимах.Проблема в том, что у меня есть изображение, которое нужно менять при любой ориентации, то есть портретное изображение отличается от альбомного.

Я успешно реализовал это для экранов iPhone из Interface Builder.Но для iPad проблема в том, что класс размера для iPad всегда равен Regular width и Regular Height.Поэтому я не могу отличить их от Interface Builder.

Итак, я реализовал это программно:

NotificationCenter.default.addObserver(forName: UIDevice.orientationDidChangeNotification,
                                           object: nil,
                                           queue: .main,
                                           using: { notification in
                                            //change image for iPad here
    })

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

Проблема теперь в том, что если этот метод вызывается из viewDidLoad, он не изменит изображение UIImageView, так как оно еще не создано,При вызове из viewDidAppear оно корректно меняет изображение, но это изменение отражается на виде, и пользователь может видеть его при изменении.

Мой вопрос: есть ли способ установить изображение для iPadна основе класса размера от Interface Builder?

и, если нет, как я могу решить проблему изменения живого изображения при этом программно?

1 Ответ

0 голосов
/ 03 декабря 2018

Поскольку классы размеров на iPad не изменились, вы можете работать с ориентацией устройства

SWIFT 4

if UIDevice.current.userInterfaceIdiom == .pad &&
   UIDevice.current.orientation.isPortrait {
      // do something here
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...