@foma24
QA Engineer

Не обновляется label.text не пойму — в чем дело?

Не могу понять в чем дело - если indicatorUnitPressed = 0, то при нажатии кнопки, текст меняется без проблем, но если indicatorUnitPressed равен числу от 1 до 7 то, при первом нажатии кнопки, текст не меняется, а при втором меняется.

var indicatorUnitPressed = 0 // Меняется от 0 до 7 в зависимости от того какую кнопку нажали
var switchPressed = 0 // по умолчанию


@IBAction func switchButtonPressed(_ sender: UIButton)
{
if switchPressed != 1
{
switch indicatorUnitPressed
{
case 0:
infoLabel.text = “Fº to Cº”
print("(indicatorUnitPressed)")
case 1:
infoLabel.text = “Km to Ml”
print("(indicatorUnitPressed)")
case 2:
infoLabel.text = “cm to in”
print("(indicatorUnitPressed)")
case 3:
infoLabel.text = “cm to ft”
case 4:
infoLabel.text = “m2 to sq.ft”
case 5:
infoLabel.text = “Litr to Gal”
case 6:
infoLabel.text = “Litr to Oz”
case 7:
infoLabel.text = “Kg to Pound”
default:
break
}
switchPressed = 1
}
else
{
print("(switchPressed)")
switch indicatorUnitPressed
{
case 0:
infoLabel.text = “Cº to Fº”
print("(indicatorUnitPressed)")
case 1:
infoLabel.text = “Ml to Km”
print("(indicatorUnitPressed)")
case 2:
infoLabel.text = “in to cm”
case 3:
infoLabel.text = “ft to cm”
case 4:
infoLabel.text = “sq.ft to m2”
case 5:
infoLabel.text = “Gal to Litr”
case 6:
infoLabel.text = “Oz to Litr”
case 7:
infoLabel.text = “Pound to Kg”
default:
break
}
switchPressed = 0
}
}


Полный файл тут https://www.dropbox.com/s/fxa8ly6j5lxvpuq/MilesVie...
  • Вопрос задан
  • 212 просмотров
Пригласить эксперта
Ответы на вопрос 2
chiliec
@chiliec
iOS-разработчик
Попробуйте вызывать infoLabel.setNeedsDisplay() после присвоения текста.

Никаких ошибок и предупреждений в консоли?
Возможно выполнение не в главном потоке, тогда оберните в
DispatchQueue.main.async { [unowned self] in
    infoLabel.text = text
}
Ответ написан
@Kyman
Смотрели ли в дебаге, что в нужную ветвь switch заходит?
По вашему коду, к сожалению, понять что-либо совершенно невозможно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы