У меня есть приложение 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
?
и, если нет, как я могу решить проблему изменения живого изображения при этом программно?