Refre sh UIImageView Изображение - PullRequest
       1

Refre sh UIImageView Изображение

0 голосов
/ 22 января 2020

У меня есть вопрос, который, вероятно, задавали много, но я просто не могу его получить. Я делаю 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

, но у меня это не сработало. Я также искал переполнение стека для подобных вопросов, но это было бесполезно. Любая помощь приветствуется

1 Ответ

0 голосов
/ 23 января 2020

В третьем условии вы забыли установить изображение или это намеренно? И нет необходимости устанавливать ноль перед заменой нового изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...