У меня есть вопрос, который, вероятно, задавали много, но я просто не могу его получить. Я делаю iOS приложение с вкладками со Swift 5 и Xcode 11. У меня есть фоновый UIImageView, который меняет изображение каждый раз, когда пользователь нажимает кнопку. Изображение на самом деле выглядит довольно хорошо, есть только одна вещь: фоновое изображение не меняется, оно просто берет предыдущее изображение. Вот мой код:
func theme(){
let backgroundImage = UIImageView(frame: self.view1.bounds)
backgroundImage.autoresizingMask = [.flexibleHeight, .flexibleWidth]
self.view1.insertSubview(backgroundImage, at: 0)
if UserDefaults.standard.integer(forKey: "like") == 1{
backgroundImage.image = nil
backgroundImage.image = UIImage(named: "img1")
self.tabBarController?.tabBar.barTintColor = UIColor(red:0.84, green:0.84, blue:0.84, alpha:1.0)
self.tabBarController?.tabBar.tintColor = UIColor(red:0.21, green:0.56, blue:0.96, alpha:1.0)
ansView.backgroundColor = UIColor.white
historyButton.backgroundColor = UIColor.black
for button in operatorButtons {
button.backgroundColor = UIColor.black
}
for button in numberButtons {
button.backgroundColor = UIColor(red:0.53, green:0.52, blue:0.53, alpha:0.5)
}
equalButton.backgroundColor = UIColor(red:1.00, green:0.49, blue:0.18, alpha:1.0)
self.view.backgroundColor = UIColor(red:0.78, green:0.78, blue:0.78, alpha:1.0)
view1.contentMode = UIView.ContentMode.scaleAspectFill
}else if UserDefaults.standard.integer(forKey: "like") == 2{
self.tabBarController?.tabBar.barTintColor = UIColor.black
self.tabBarController?.tabBar.tintColor = UIColor(red:0.98, green:0.64, blue:0.02, alpha:1.0)
backgroundImage.image = nil
backgroundImage.image = UIImage(named: "img2")
ansView.backgroundColor = UIColor(red:0.53, green:0.52, blue:0.53, alpha:1)
historyButton.backgroundColor = UIColor(red:0.00, green:0.00, blue:0.00, alpha:0.9)
for button in operatorButtons {
button.backgroundColor = UIColor(red:0.00, green:0.00, blue:0.00, alpha:0.9)
}
for button in numberButtons {
button.backgroundColor = UIColor(red:0.53, green:0.52, blue:0.53, alpha:0.5)
}
equalButton.backgroundColor = UIColor(red:0.53, green:0.52, blue:0.53, alpha:0.5)
self.view.backgroundColor = UIColor.black
view1.contentMode = UIView.ContentMode.scaleAspectFill
}else if UserDefaults.standard.integer(forKey: "like") == 3{
self.tabBarController?.tabBar.barTintColor = UIColor(red:0.78, green:0.75, blue:0.90, alpha:1.0)
self.tabBarController?.tabBar.tintColor = UIColor(red:0.51, green:0.44, blue:0.78, alpha:1.0)
view1.backgroundColor = UIColor(patternImage: UIImage(named: "ing3")!)
ansView.backgroundColor = UIColor(red:1.00, green:1.00, blue:1.00, alpha:0.5)
historyButton.backgroundColor = UIColor(red:0.60, green:0.54, blue:0.82, alpha:1.0)
for button in operatorButtons {
button.backgroundColor = UIColor(red:0.60, green:0.54, blue:0.82, alpha:1.0)
}
for button in numberButtons {
button.backgroundColor = UIColor(red:1.00, green:1.00, blue:1.00, alpha:0.5)
}
equalButton.backgroundColor = UIColor(red:0.51, green:0.44, blue:0.78, alpha:1.0)
self.view.backgroundColor = UIColor(red:0.78, green:0.75, blue:0.90, alpha:1.0)
view1.contentMode = UIView.ContentMode.scaleToFill
}
}
Приведенный выше код был моей функцией темы, которую я вызываю каждый раз, когда открывается вид. Как вы видите выше, я пытался
backgroundImage.image = nil
, но у меня это не сработало. Я также искал переполнение стека для подобных вопросов, но это было бесполезно. Любая помощь приветствуется