2015-08-19 3 views
0

Я делаю викторину. Но иногда я хочу поставить изображение вместо вопроса метки. Итак, я создаю:Как разместить изображение на UIImageView на Swift?

@IBOutlet weak var QuestionsLabel = Label! 
@IBOutlet weak var QuestionsImg = UIImageView! 

И остальная часть кода так:

func randomQuestions() 
{ 
    var randomNumber = arc4random_uniform(2) 
    while previousNumber == randomNumber 
    { 
     randomNumber = arc4random_uniform(2) 
    } 
    previousNumber = randomNumber 

    switch(randomNumber) 
    { 
    case 1: 
     QuestionsLabel.text = "O que significa 'estar pisado'?" 
     Button1.setTitle("Estar doente", forState: UIControlState.Normal) 
     Button2.setTitle("Estar machucado", forState: UIControlState.Normal) 
     Button3.setTitle("Estar triste", forState: UIControlState.Normal) 
     Button4.setTitle("Estar tonto", forState: UIControlState.Normal) 
     correctAnswer = "2" 
     break 
    case 2: 
     hideLabel() 
     QuestionsImg.image = UIImage(named: "arante3") 
     Button1.setTitle("Lagoinha", forState: UIControlState.Normal) 
     Button2.setTitle("Canasvieiras", forState: UIControlState.Normal) 
     Button3.setTitle("Armação", forState: UIControlState.Normal) 
     Button4.setTitle("Santinho", forState: UIControlState.Normal) 
     correctAnswer = "3" 
     break 
    default: 
     break 
    } 
} 

и функ hideLabel такова:

func hideLabel() 
    { 
     QuestionsLabel.hidden = true 
    } 
    func unhideLabel() 
    { 
     QuestionsLabel.hidden = false 
    } 

Но не работает! В чем проблема?

ответ

3

"Но не работает". Это крайне не полезно. Хорошо, что это значит? Всегда ли текст остается видимым и изображение тоже? изображение появляется и исчезает, но этикетка не исчезает? Разве ваш телефон вспыхнул?

У вашего кода есть ряд проблем. Прежде всего, arc4random_uniform (2) создает значения 0 или 1. Ваши случаи должны быть 0 и 1, а не 1 и 2.

Вам нужен случай 0 (показать ярлык), чтобы вызвать unhideLabel и скрыть представление изображения.

Вам нужен случай 1 (скрыть ярлык, показать изображение), чтобы позвонить hideLabel и показать изображение. путем установки QuestionsImg.hidden = false

В качестве альтернативы имена переменных должны начинаться с буквы нижнего регистра. Только имена типов и классов должны начинаться с буквы верхнего регистра. Это сильное соглашение об именах в Свифт.

+0

На самом деле, мой вопрос был плохо подготовлен, извините! Проблема состояла в том, что я не начинал с «case 0», и это делало все различие в моем коде. Теперь все в порядке. Спасибо –

Смежные вопросы