Я хочу изменить фоновое изображение своего приложения в зависимости от близости маяка. Если я запускаю приложение (см. Код ниже) на своем iPhone, оно корректно отображает фоновое изображение в зависимости от близости, но если я двигаюсь, оно не меняет / не обновляет фоновое изображение.
Я попробовал то же самое с цветом фона (см. Код ниже), и это сработало: приложение меняет свой цвет фона в зависимости от близости маяка, и, если я перемещаю его, он корректно меняет / обновляет цвет фона. Просто фоновое изображение не работает должным образом.
Как заставить фоновое изображение корректно обновляться?
func updateDistance(_ distance: CLProximity) {
UIView.animate(withDuration: 0.8) {
switch distance {
case .unknown:
let backgroundImage = UIImageView(frame: UIScreen.main.bounds)
backgroundImage.image = UIImage(named: "1.jpg")
//backgroundImage.reloadInputViews()
backgroundImage.contentMode = UIView.ContentMode.scaleAspectFill
self.view.insertSubview(backgroundImage, at: 0)
//print("nothing here..")
case .far:
let backgroundImage = UIImageView(frame: UIScreen.main.bounds)
//backgroundImage.image = UIImage(named: "2.png")
backgroundImage.image = UIImage(named: "3.png")
//backgroundImage.reloadInputViews()
backgroundImage.contentMode = UIView.ContentMode.scaleAspectFill
self.view.insertSubview(backgroundImage, at: 0)
case .near:
let backgroundImage = UIImageView(frame: UIScreen.main.bounds)
backgroundImage.image = UIImage(named: "4.png")
//backgroundImage.reloadInputViews()
backgroundImage.contentMode = UIView.ContentMode.scaleAspectFill
self.view.insertSubview(backgroundImage, at: 0)
case .immediate:
let backgroundImage = UIImageView(frame: UIScreen.main.bounds)
backgroundImage.image = UIImage(named: "5.jpg")
//backgroundImage.reloadInputViews()
backgroundImage.contentMode = UIView.ContentMode.scaleAspectFill
self.view.insertSubview(backgroundImage, at: 0)
@unknown default:
// fatalError()
let backgroundImage = UIImageView(frame: UIScreen.main.bounds)
backgroundImage.image = UIImage(named: "6.jpg")
//backgroundImage.reloadInputViews()
backgroundImage.contentMode = UIView.ContentMode.scaleAspectFill
self.view.insertSubview(backgroundImage, at: 0)
}
}
func updateDistance(_ distance: CLProximity) {
UIView.animate(withDuration: 0.8) {
switch distance {
case .unknown:
self.view.backgroundColor = UIColor.gray
print("nothing here..")
case .far:
self.view.backgroundColor = UIColor.blue
case .near:
self.view.backgroundColor = UIColor.orange
case .immediate:
self.view.backgroundColor = UIColor.red
// self.sendUserNotification()
@unknown default:
<#fatalError()#>
}
}
}