Изменение текста UIButton

Поэтому я пытаюсь обновить текст на кнопке UIB, когда я нажимаю на нее. Я использую следующую строку для изменения текста:

calibrationButton.titleLabel.text = @"Calibration";

Я убедился, что текст меняется, но когда я запускаю приложение и нажимаю на кнопку, он меняется на «Калибровка». на долю секунды, а затем возвращается к значению по умолчанию. Есть идеи, почему это может происходить? Есть ли какая-то функция обновления, которую мне нужно вызывать?

 dasblinkenlight10 июл. 2012 г., 17:51
возможный дубликатiPhone UIButton TitleLabel text?

Ответы на вопрос(6)

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

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

[calibrationButton setTitle: @"Calibration" forState: UIControlStateNormal];

УвидетьUIButton Ссылка на класс для более подробной информации ... http://developer.apple.com/library/ios/#documentation/uikit/reference/UIButton_Class/UIButton/UIButton.html

Или в Swift 3:

calibrationButton.setTitle("Calibration", for: .normal)

Для Swift 2.0:

let btnObject : UIButton  = UIButton() 
btnObject.frame = CGRect(x: 8, y: 89, width: 70, height: 22)
btnObject.setTitle("Button Title", forState: UIControlState.Normal)
btnObject.titleLabel?.font = UIFont(name: "Helvetica Neue", size: 13)
btnObject.titleLabel?.textColor = UIColor.whiteColor()
btnObject.backgroundColor = UIColor(red: 189/255, green: 176/255, blue: 0/255, alpha: 1)
btnObject.titleLabel?.textAlignment = NSTextAlignment.Center
btnObject.addTarget(self, action: "btnbtnObjectClick:", forControlEvents: UIControlEvents.TouchUpInside)
subView.addSubview(btnObject)
Решение Вопроса

При размещении своих подпредставлений UIButton будет устанавливать свое текстовое значение titleLabel, используя свои собственные значения заголовка, так что вы можете установить до четырех различных строк для четырех состояний (обычное, выделенное, выбранное, отключенное).

Из-за этой функции установка текста titleLabel непосредственно не будет сохраняться и будет сброшена кнопкой, когда он выложит свои подпредставления.

Это то, что вам нужно сделать, чтобы изменить текст заголовка для состояния кнопки.

[calibrationButton setTitle:@"Calibration" forState:UIControlStateNormal];
 Julian Coltea10 июл. 2012 г., 18:51
Спасибо! Это работает как шарм.
 17 мая 2013 г., 19:23
и что такое button.titleLabel.text = @ & quot; некоторый текст & quot; должен делать то?
 26 авг. 2013 г., 16:45
@BorisGafurov Если вы введетеbutton.titleLabelвы видите, что titleLabel является свойством только для чтения, и поэтому любое из свойств свойства только для чтения также доступно только для чтения. Использование точечной нотации для их редактирования не сработает, и поэтому вам нужны явные методы для их редактирования. Это имеет смысл для меня по крайней мере.
 11 февр. 2015 г., 22:43
@erdekhayser На самом деле, свойства только для чтенияCAN имеют свойства чтения / записи. Я использую тег titlelabel для передачи целого числа в метод действия. Также см. Документы Apple.link Although this property is read-only, its own properties are read/write. Use these properties primarily to configure the text of the button. For example:
 25 февр. 2014 г., 17:56
Я думаю, что потратил впустую около двух часов, пока не понял этого (что, к сожалению, я думаю, я уже знал!)

Не большое дело и, возможно, очевидно, но есть несколько состояний, доступных для кнопок. Если вы предоставите «неправильно» Во-первых, вы не увидите изменения текста по желанию.

Я заметил, что моя кнопка не отображала текст, который я добавил, используя методы, показанные здесь. Проверьте эту ссылку, чтобы убедиться, что вы предоставляете UIControlState, который вы намерены.

В чем разница между UIControlStateHighlighted и UIControlStateSelected?

let button = UIButton(type: .system)
button.frame = CGRect(x: 100, y: 100, width: 100, height: 100)
button.setTitle("set here", for: .normal)
button.addTarget(self, action: #selector(TableViewController.actionButtonTocuh), for: .touchUpInside)
button.titleLabel?.textColor  = #colorLiteral(red: 0.1019607857, green: 0.2784313858, blue: 0.400000006, alpha: 1)
view.addSubview(button)

Ваш ответ на вопрос