Как изменить свойство textLabel в UIButton программно в iOS?

У меня есть UIButton , у которого должно быть 2 состояния – «Play» и «Pause»; т.е. – в первый раз пользователь видит, что он говорит «Воспроизвести», а затем всякий раз, когда пользователь нажимает на него, он должен переключаться между «Воспроизвести» и «Пауза».

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

Я использую:

 myButton.titleLabel.text = @"Play"; myButton.titleLabel.text = @"Pause"; 

Это не работает. Текст не меняется. Я также попробовал [myButton.titleLabel setText: @ "Пауза"], и он не работает.

Как я могу установить его?

Должен быть:

 [myButton setTitle:@"Play" forState:UIControlStateNormal]; 

Вам также нужно передать state . Вы можете проверить другое state здесь .

Затем вы можете сделать что-то вроде этого:

 [myButton setTitle:@"Play" forState:UIControlStateNormal]; [myButton setTitle:@"Stop" forState:UIControlStateSelected]; 

Я обнаружил, что это несколько устарело, поскольку добавленные строки добавлены. По-видимому, названия кнопок, назначенных в раскадровке, являются строками. Заголовки с атрибутами имеют приоритет над названиями NSString, поэтому, если вы хотите использовать простую строку в качестве заголовка, сначала нужно удалить присвоенный заголовок. Я сделал это, как показано ниже, хотя может быть и лучший способ. Разумеется, вы можете сделать свой новый заголовок также атрибутной строкой.

 [myButton setAttributedTitle: nil forState: 0xffff]; [myButton setTitle: @"Play" forState: UIControlStateNormal]; 

И если вы хотите загрузить его на загрузку страницы и поддерживать локализованный язык:

 -(void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; if (self.flagToChangeLabel){ NSString* newBtnTitle = NSLocalizedString(@"LOCALIZED_KEY", nil); [self.laterButton setTitle:newBtnTitle forState:UIControlStateNormal]; [self.laterButton setTitle:newBtnTitle forState:UIControlStateSelected]; } } 
  • Как установить цвет фона UIButton дляState: UIControlState.Highlighted in Swift
  • Фоновый образ UIButton не меняется
  • UItableView Замена контрольных точек с помощью UIButton или пользовательского CheckImage для множественного выбора
  • UIButton не изменяет размер автоматически
  • Название UIButton после скрытого = НЕТ
  • Перерисовать настраиваемый UIButton после щелчка
  • Swift - UIButton overriding setSelected
  • Как поймать и обработать все события UIButton одним методом?
  • iPhone: Как сделать UIButton, который вы можете легко нажать?
  • Быстрое добавление нескольких изображений в один UIButton
  • UIImage от UIColor с альфой
  • Давайте будем гением компьютера.