Подтвердить что ты не робот

Изменение текста на UIButton не прилипает

У меня есть UIButton в моем представлении, в котором говорится "STOP". При нажатии он должен (остановить воспроизведение, конечно, и) изменить свою метку на "RTN TO ZERO". Это просто:

stopButton.titleLabel.text = @"RTN TO ZERO";

Однако это изменение появляется только в течение секунды. Он не прилипает. Я предполагаю, что кнопка (которая подсвечивается при нажатии) принимает и отображает новую метку, но почему-то подсветка отменяется только позже, восстанавливая кнопку до того, как она была нажата, а не в соответствии с изменением текста метки. Кнопка задумана в IB, а не программно.

Я чувствую себя глупо. Может ли кто-нибудь указать мне в правильном направлении?

4b9b3361

Ответ 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.