Изменение фона при изменении ориентации не выполняется

У меня есть два изображения bg-land и bg-port для различной ориентации. Я хочу изменить изображение по ориентации chnaging. Но изображение не меняется. Когда я загружаю Simulator в LandScape, bg-land работает отлично, но не работает с Rotation. Код:

  override func viewDidLoad() { super.viewDidLoad() loadBackground() } func loadBackground(){ if(UIApplication.sharedApplication().statusBarOrientation.isPortrait){ var bgImage = UIImage(named: "bg-port") var background = UIImageView(frame: self.view.bounds); background.image = bgImage self.view.addSubview(background) self.view.sendSubviewToBack(background) println(bgImage) } else { var bgImage = UIImage(named: "bg-land") var background = UIImageView(frame: self.view.bounds); background.image = bgImage self.view.addSubview(background) self.view.sendSubviewToBack(background) println(bgImage) } } override func didRotateFromInterfaceOrientation(fromInterfaceOrientation: UIInterfaceOrientation) { loadBackground() } 

2 Solutions collect form web for “Изменение фона при изменении ориентации не выполняется”

Это не меняется, потому что вы отправляете недавно добавленный UIImageView на задний UIImageView ранее созданного UIImageView . Вместо этого создайте переменную-член в своем классе для UIImageView . (Назовите его как background )

 func loadBackground() { if self.background == nil { self.background = UIImageView() self.view.addSubview(self.background) self.view.sendSubviewToBack(self.background) } if(UIApplication.sharedApplication().statusBarOrientation.isPortrait) { var bgImage = UIImage(named: "bg-port") self.background.frame = self.view.bounds; self.background.image = bgImage } else { var bgImage = UIImage(named: "bg-land") self.background.frame = self.view.bounds; background.image = bgImage } } 

Но лучше добавить UIImageView к вашему интерфейсу и загрузить изображение с помощью кода, а не создавать его во время выполнения. И я предпочитаю, чтобы это был хороший подход.

Этот код отлично работает для меня:

  override func viewDidLoad() { super.viewDidLoad() self.loadBackground() } func loadBackground(){ if(UIApplication.sharedApplication().statusBarOrientation.isPortrait){ let imageName = "Texture.jpg" let image = UIImage(named: imageName) let imageView = UIImageView(image: image!) imageView.frame = self.view.bounds view.addSubview(imageView) } else { let imageName = "AppIcon.png" let image = UIImage(named: imageName) let imageView = UIImageView(image: image!) imageView.frame = self.view.bounds view.addSubview(imageView) } } override func didRotateFromInterfaceOrientation(fromInterfaceOrientation: UIInterfaceOrientation) { loadBackground() } 

Не забудьте изменить имя изображения из этого кода.

Может быть, это поможет вам.

  • objc_sync_enter / objc_sync_exit не работает с DISPATCH_QUEUE_PRIORITY_LOW
  • iOS: сбой при совместном использовании с опцией «Сообщение»
  • Выполнить «догонять», когда игра снова открывается
  • Subview не может быть отображен в предварительном просмотре камеры в IOS с быстрым
  • Сохранение переменных при выходе из приложения
  • -com.apple.CoreData.SyntaxColoredLogging ДА не работает в Xcode 8
  • Дважды заполняющая решетка Firebase - Swift
  • Панель вкладок при переключении просмотров
  • iOS: `UICollectionview`, как получить` contentoffset` ячейки в виде `indexPath`
  • Как изменить пространство между UIBarButtonItems в UINavigationBar?
  • Использование команды «po» в Xcode 6 beta 5 Отладка выбранных представлений
  • Interesting Posts

    Как использовать NSURLSession для публикации некоторых свойств и изображения

    APNS – Не удается отправить уведомление на устройство iOS с помощью Java

    как разделить разные URL-адреса через uiactivityviewcontroller?

    Неоднозначность с двумя ограничениями неравенства

    Является ли переопределяющими объектно-ориентированные методы C-схемы хорошей идеей?

    AVPlayer – качество переключения при воспроизведении

    Как установить выравнивание текста в режиме выбора iOS

    Типы объектов метаданных AVFoundation

    Приглашение друзей facebook в Air app для iOS

    Каковы размеры индикаторов раскрытия информации iOS?

    Невозможно получить данные с использованием данных ядра

    Как использовать аутентификацию сертификата клиента в приложении iOS

    Размер UIImage, возвращаемый с 'requestImageForAsset', даже не близок к настройке 'targetSize'

    Вложенная высота строки UITableview не обновляется отлично в iOS 8

    Скомпилировать OpenCV для iOS не удается

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.