Ответы:
В Свифте 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)
Swift 5.0
// Standard State
myButton.setTitle("Title", for: .normal)
Изменение заголовка при его присвоении немного отличается:
Я только что столкнулся с проблемой: если у вас есть UIButton с атрибутом заголовка, вы должны использовать:
my_btn.setAttributedTitle(NSAttributedString(string: my_title), for: my_state)
согласно Apple SetTitle Doc :
Если для кнопки установить заголовок и присвоенный заголовок, кнопка предпочитает использовать присвоенный заголовок над этим.
У меня был атрибутивный заголовок, и я попытался установить заголовок без него ...
Свифт 3
Когда вы делаете @IBAction:
@IBAction func btnAction(_ sender: UIButton) {
sender.setTitle("string goes here", for: .normal)
}
Это устанавливает отправителя как UIButton (вместо Any), поэтому он нацелен на btnAction как UIButton
Чтобы установить заголовок для кнопки в Xcode, используя swift - 04: сначала создайте метод с именем setTitle с параметром title и состоянием UIController, как показано ниже;
func setTitle(_ title : String?, for state : UIControl.State) {
}
и вызовите этот метод в вашем методе действия кнопки как;
yourButtonName.setTitle("String", for: .state)
UIControlState
. например,forState: .Normal