Простой вопрос. У меня есть UIButton, currencySelector, и я хочу программно изменить текст. Вот что у меня есть:
currencySelector.text = "foobar"
Xcode дает мне ошибку "Ожидаемая декларация". Что я делаю неправильно, и как я могу изменить текст кнопки?
В Swift 3:
button.setTitle("Button Title",for: .normal)
В противном случае:
button.setTitle("Button Title", forState: UIControlState.Normal)
Просто уточнение для тех новых для Swift и программирования iOS. Ниже строки кода:
button.setTitle("myTitle", forState: UIControlState.Normal)
применяется только к IBOutlets
, а не к IBActions
.
Итак, если ваше приложение использует кнопку в качестве функции для выполнения какого-либо кода, скажем, воспроизведения музыки, и вы хотите изменить заголовок из Play
to Pause
на основе переменной переключения, вам также нужно создать IBOutlet
для этой кнопки.
Если вы попытаетесь использовать button.setTitle
против IBAction
вы получите сообщение об ошибке. Это очевидно, когда вы это знаете, но для noobs (все мы были) это полезный совет.
Swift 3:
Установить название кнопки:
//for normal state:
my_btn.setTitle("Button Title", for: .normal)
// For highlighted state:
my_btn.setTitle("Button Title2", for: .highlighted)
Swift 3.0
// Standard State
myButton.setTitle("Title", for: .normal)
for state: UIControlState in [.normal, .highlighted, .disabled, .selected, .focused, .application, .reserved] {
button.setTitle(NSLocalizedString("Title", comment: ""), for: state)
}
Swift 3
Когда вы делаете @IBAction:
@IBAction func btnAction(_ sender: UIButton) {
sender.setTitle("string goes here", for: .normal)
}
Это устанавливает отправителя как UIButton (вместо Any), поэтому он нацеливает btnAction как UIButton
Swift 3
let button: UIButton = UIButton()
button.frame = CGRect.init(x: view.frame.width/2, y: view.frame.height/2, width: 100, height: 100)
button.setTitle("Title Button", for: .normal)
UIControlState
. например,forState: .Normal
.normal
обратите внимание на нижний регистр