Odpowiedzi:
W Swift 3, 4, 5:
button.setTitle("Button Title", for: .normal)
Inaczej:
button.setTitle("Button Title", forState: UIControlState.Normal)
Również @IBOutletmusi zadeklarować dla button.
.normalzwrócić uwagę na małe litery
forStatenafor
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 Playna Pausena podstawie zmiennej przełączającej, musisz również utworzyć IBOutletdla tego przycisku.
Jeśli spróbujesz użyć button.setTitleprzeciwko IBAction, otrzymasz błąd. To oczywiste, kiedy się zorientujesz, ale dla noobów (wszyscy byliśmy) jest to przydatna wskazówka.
senderDział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