Odpowiedzi:
W Swift 3, 4, 5:
button.setTitle("Button Title", for: .normal)
Inaczej:
button.setTitle("Button Title", forState: UIControlState.Normal)
Również @IBOutlet
musi zadeklarować dla button
.
.normal
zwrócić uwagę na małe litery
forState
nafor
button.setTitle("Button Title",for: .normal)
działa !, dzięki
Tylko wyjaśnienie dla tych, którzy dopiero zaczynają programować w Swift i iOS . Poniżej linii kodu:
button.setTitle("myTitle", forState: UIControlState.Normal)
dotyczy tylko IBOutlets
, a nie IBActions
.
Tak więc, jeśli Twoja aplikacja używa przycisku jako funkcji do wykonania kodu, powiedzmy odtwarzania muzyki, a chcesz zmienić tytuł z Play
na Pause
na podstawie zmiennej przełączającej, musisz również utworzyć IBOutlet
dla tego przycisku.
Jeśli spróbujesz użyć button.setTitle
przeciwko IBAction
, otrzymasz błąd. To oczywiste, kiedy się zorientujesz, ale dla noobów (wszyscy byliśmy) jest to przydatna wskazówka.
sender
Działania będzie przycisk. Możesz zastosować cokolwiek zechcesz sender
. Nie potrzebujesz do tego gniazdka.
let controlStates: Array<UIControl.State> = [.normal, .highlighted, .disabled, .selected, .focused, .application, .reserved]
for controlState in controlStates {
button.setTitle(NSLocalizedString("Title", comment: ""), for: controlState)
}
Swift 3:
Ustaw tytuł przycisku:
//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)
Zmiana tytułu po przypisaniu jest nieco inna:
Właśnie natrafiłem na problem: jeśli masz UIButton z przypisanym tytułem, musisz użyć:
my_btn.setAttributedTitle(NSAttributedString(string: my_title), for: my_state)
zgodnie z dokumentem Apple SetTitle Doc :
Jeśli dla przycisku ustawisz zarówno tytuł, jak i tytuł przypisany, przycisk woli używać przypisanego tytułu od tego przycisku.
Miałem przypisany tytuł i próbowałem go ustawić, bez żadnego efektu ...
Szybki 3
Po wykonaniu @IBAction:
@IBAction func btnAction(_ sender: UIButton) {
sender.setTitle("string goes here", for: .normal)
}
To ustawia nadawcę jako UIButton (zamiast Any), więc celuje w btnAction jako UIButton
Aby ustawić tytuł przycisku w Xcode za pomocą swift - 04: najpierw utwórz metodę o nazwie setTitle z tytułem parametru i stanem UIController jak poniżej;
func setTitle(_ title : String?, for state : UIControl.State) {
}
i przywołaj tę metodę w metodzie działania przycisku, np.
yourButtonName.setTitle("String", for: .state)
UIControlState
. np.forState: .Normal