Proste pytanie tutaj. Mam UIButton, currencySelector i chcę programowo zmienić tekst. Oto co mam:
currencySelector.text = "foobar"
Xcode wyświetla błąd „Oczekiwana deklaracja”. Co robię źle i jak mogę zmienić tekst przycisku?
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
.
UIControlState
. np.forState: .Normal
.normal
zwrócić uwagę na małe literyforState
nafor
button.setTitle("Button Title",for: .normal)
działa !, dziękiTylko wyjaśnienie dla tych, którzy dopiero zaczynają programować w Swift i iOS . Poniżej linii kodu:
dotyczy tylko
IBOutlets
, a nieIBActions
.Tak więc, jeśli Twoja aplikacja używa przycisku jako funkcji do wykonania kodu, powiedzmy odtwarzania muzyki, a chcesz zmienić tytuł z
Play
naPause
na podstawie zmiennej przełączającej, musisz również utworzyćIBOutlet
dla tego przycisku.Jeśli spróbujesz użyć
button.setTitle
przeciwkoIBAction
, otrzymasz błąd. To oczywiste, kiedy się zorientujesz, ale dla noobów (wszyscy byliśmy) jest to przydatna wskazówka.źródło
sender
Działania będzie przycisk. Możesz zastosować cokolwiek zechceszsender
. Nie potrzebujesz do tego gniazdka.Swift 5:
źródło
Swift 3:
Ustaw tytuł przycisku:
źródło
Swift 5.0
źródło
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ć:
zgodnie z dokumentem Apple SetTitle Doc :
Miałem przypisany tytuł i próbowałem go ustawić, bez żadnego efektu ...
źródło
Szybki 3
Po wykonaniu @IBAction:
To ustawia nadawcę jako UIButton (zamiast Any), więc celuje w btnAction jako UIButton
źródło
szybkie 4.2 i nowsze
za pomocą przycisku IBOutlet
za pomocą przycisku IBAction
źródło
Szybki 3
źródło
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;
i przywołaj tę metodę w metodzie działania przycisku, np.
źródło