Изменение текста на UIButton не прилипает
У меня есть UIButton в моем представлении, в котором говорится "STOP". При нажатии он должен (остановить воспроизведение, конечно, и) изменить свою метку на "RTN TO ZERO". Это просто:
stopButton.titleLabel.text = @"RTN TO ZERO";
Однако это изменение появляется только в течение секунды. Он не прилипает. Я предполагаю, что кнопка (которая подсвечивается при нажатии) принимает и отображает новую метку, но почему-то подсветка отменяется только позже, восстанавливая кнопку до того, как она была нажата, а не в соответствии с изменением текста метки.
Кнопка задумана в IB, а не программно.
Я чувствую себя глупо. Может ли кто-нибудь указать мне в правильном направлении?
Ответы
Ответ 1
В обработчике кнопок попробуйте это:
[stopButton setTitle:@"RTN TO ZERO" forState:UIControlStateNormal];
Вместо прямого изменения свойства text
titleLabel
используйте setTitle:forState:
метод для установки заголовка в разных состояниях. Пожалуйста, проверьте руководство для деталей доступных состояний.
Ответ 2
Swift версия
myButton.setTitle("button text", for: UIControl.State.normal)
Используйте setAttributedTitle:for
для атрибутивного текста. Смотрите здесь о том, как сделать приписанные строки в Swift.