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

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

calibrationButton.titleLabel.text = @"Calibration";

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

Ответ 1

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

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

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

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

Ответ 3

программно вы можете установить название кнопки, как показано ниже:

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

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

Ответ 4

Не огромная сделка и, возможно, очевидна, но для кнопок доступно несколько состояний. Если вы укажете "неправильный", вы не увидите изменения текста по своему желанию.

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

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

Ответ 5

Для 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)

Ответ 6

Для Swift 3.0

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)