Установить изображение, когда слово появляется в метке из массива - PullRequest
0 голосов
/ 19 января 2019

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

Предполагается, что картинка устанавливается в виде изображения, когда конкретные слова являются текстом метки из массива.

Вот массив:

    let freeMoodArray = ["Happy", "Sad", "Angry", "Annoyed", "Curious", "Bored", "Chilled", "Furious", "Excited", "Scared", "Emotionless", "Shocked", "Tired", "Sick", "Amused"]

Вот случайный текст метки: "

self.moodAnswer.text = "\(self.freeMoodArray.randomElement()!)"

Теперь, когда я загружаю вид, изображение выбирает случайное слово из массива, который работает. Теперь допустим, что в качестве текста метки написано Happy. Я хочу установить определенный образ только тогда, когда он говорит, что счастлив.

Вот мой код, который не работает: (эта функция вызывается в viewDidLoad())

    func emojiMood() {
    if moodAnswer.text == "Happy" {
        emojiImg.image = UIImage(named: "happy.png")
    }
}

1 Ответ

0 голосов
/ 19 января 2019

как, но переменная и DidSet?

// create a variable
var moodAnswer :  string = "" {
   didSet {
       // if or switchCase, set image only if the text is equal to Happy
       if moodAnswer == "Happy" {
          emojiImg.image = UIImage(named: "happy.png")
       }
       // always set text field with new updated text
       self.moodAnswerLabel.text = moodAnswer
   }
}

// in your code always set moodAnswer variable, this is more clean and also you set label and image only in a single place
self.moodAnswer = "\(self.freeMoodArray.randomElement()!)"
...