Відповіді:
У Swift 3, 4, 5:
button.setTitle("Button Title", for: .normal)
Інакше:
button.setTitle("Button Title", forState: UIControlState.Normal)
Також є @IBOutlet
задекларований для button
.
.normal
відзначила нижню букву
forState
наfor
button.setTitle("Button Title",for: .normal)
працює !, дякую
Просто роз'яснення для тих, хто не знайомий із програмою Swift та iOS . Нижній рядок коду:
button.setTitle("myTitle", forState: UIControlState.Normal)
стосується лише IBOutlets
, не IBActions
.
Отже, якщо ваш додаток використовує кнопку як функцію для виконання якогось коду, скажімо відтворення музики, і ви хочете змінити заголовок Play
на Pause
на основі змінної перемикання, вам також потрібно створити IBOutlet
для цієї кнопки.
Якщо ви спробуєте використати button.setTitle
проти, IBAction
ви отримаєте помилку. Це очевидно, як тільки ви це знаєте, але для ноубів (ми всі були) це корисна порада.
sender
Дії буде кнопка. Ви можете застосувати все, що завгодно sender
. Для цього вам не потрібна розетка.
let controlStates: Array<UIControl.State> = [.normal, .highlighted, .disabled, .selected, .focused, .application, .reserved]
for controlState in controlStates {
button.setTitle(NSLocalizedString("Title", comment: ""), for: controlState)
}
Швидкий 3:
Встановити назву кнопки:
//for normal state:
my_btn.setTitle("Button Title", for: .normal)
// For highlighted state:
my_btn.setTitle("Button Title2", for: .highlighted)
Швидкий 5.0
// Standard State
myButton.setTitle("Title", for: .normal)
Зміна назви при приписуванні дещо відрізняється:
Щойно я зіткнувся з проблемою: якщо у вас є UIButton з атрибутивним заголовком, ви повинні використовувати:
my_btn.setAttributedTitle(NSAttributedString(string: my_title), for: my_state)
відповідно до документа Apple SetTitle :
Якщо для кнопки встановлено як заголовок, так і атрибутивний заголовок, кнопка вважає за краще використання атрибутивного заголовка над цією.
У мене був приписуваний заголовок, і я намагався встановити на нього титл, без ефекту ...
Швидкий 3
Коли ви робите @IBAction:
@IBAction func btnAction(_ sender: UIButton) {
sender.setTitle("string goes here", for: .normal)
}
Це встановлює відправника як UIButton (замість Any), тому він орієнтується на btnAction як UIButton
Щоб встановити заголовок для кнопки в Xcode за допомогою swift - 04: спочатку створіть метод під назвою setTitle із заголовком параметра та станом UIController, як показано нижче;
func setTitle(_ title : String?, for state : UIControl.State) {
}
і пригадайте цей метод у своєму методі дії кнопки типу;
yourButtonName.setTitle("String", for: .state)
UIControlState
. наприкладforState: .Normal